Ich versuche, zum Hauptbildschirm zu navigieren und Code funktioniert immer noch gut, wenn der JS DEBUGGER eingeschaltet ist (läuft), aber das Problem ist, wenn ich versuche, meine Anwendung zu starten, wenn JS DEBUGGER OFF ist deaktivieren) und versuchen, sich zu diesem Zeitpunkt anzumelden "yield put (NavigationActions.navigate ({routeName: 'Main'}));" Dieser Stückcode leitet nicht zum Hauptbildschirm um.Navigation funktioniert nicht mit redux-saga
unten ist mein Code:
import { NavigationActions } from 'react-navigation';
import { call, put, takeEvery, take } from 'redux-saga/effects';
import { getFirebase } from 'react-redux-firebase';
export function* watchLoginAsync({email, password}) {
try {
const response = yield getFirebase().login({email,password});
if (response.uid) {
// dispatchToMain();
yield put(NavigationActions.navigate({ routeName: 'Main' }));
// yield put({type: LOGIN_SUCCESS });
} else {
yield put({type: LOGIN_FAIL, error: 'Something went wrong seriously!!'});
}
} catch(err => console.log(err))
}
export default function* watchLogin() {
yield takeEvery(LOGIN_REQUESTING, watchLoginAsync);
}
Und die store.js-Datei (wo i redux-Saga integriert haben, reagieren mit-redux-Feuerbasis)
const sagaMiddleware = createSagaMiddleware();
const middleware = [ sagaMiddleware ];
const firebaseConfig = {
apiKey: '******',
authDomain: '****',
databaseURL: '****',
projectId: '****',
storageBucket: '****',
messagingSenderId: '****',
};
const reduxFirebaseConfig = {
userProfile: 'users',
enableLogging: true,
enableRedirectHandling: false,
};
// Add redux Firebase to compose
const createStoreWithFirebase = compose(
reactReduxFirebase(fbConfig, reduxFirebaseConfig),
applyMiddleware(...middleware)
)(createStore);
// Add Firebase to reducers
const rootReducer = combineReducers({
firebase: firebaseStateReducer,
......
});
// Create store with reducers and initial state
const initialState = {}
export default createStoreWithFirebase(rootReducer, initialState);
// when calling saga, pass getFirebase
sagaMiddleware.run(Sagas, getFirebase)
HINWEIS: Code funktioniert einwandfrei, wenn JS DEBUGGER im iOS-Simulator aktiv ist, während die App läuft.
sind u loggerMiddleware mit ?? .. Ich hatte einige Probleme im Emulator .. Sie müssen auf den Bildschirm klicken, um Aktionen im Emulator auszulösen, wenn Reduction Logger und Debuggen eingeschaltet ist. – Vicky
Nein, ich benutze keine Logger Middleware, aber sehen Sie, können Sie auf meine Redux-Saga store.js Datei Ich denke, das passiert, weil etwas in 'reduxFirebaseConfig' falsch ist. –