Ich baue meine erste react native App mit redux.Wie kann man Redux-Speicher von nicht reagierenden Komponenten lesen?
My store
Konfiguration ist wie folgt:
function configureStore(onComplete: ?() => void) {
const store = autoRehydrate()(createMyAppStore)(reducers);
persistStore(store, {storage: AsyncStorage}, onComplete);
if (isDebuggingInChrome) {
window.store = store;
}
return store;
}
Ich habe eine Authentifizierungs action
wie folgt
export function authentiate(credentials) {
return (dispatch) => {
return LoginApi.authenticate(credentials)
.then(response => {
return response.json().then(function(json) {
dispatch(onAuthSuccess(json));
});
})
.then(response => { dispatch(getUserInfo()); })
.catch(error => {
throw(error);
});
};
}
My getUserInfo
action
ist als
export function getUserInfo() {
return (dispatch) => {
return LoginApi.gerUserInfo()
.then(result => { dispatch(onGetUserInfoSuccess(result.json())); })
.catch(error => {
throw(error);
});
};
}
My Authentifizierungs Minderer wie folgt ist
function auth(state: State = initialState, action: Action): State {
switch (action.type) {
case types.AUTH_SUCCESSFUL :
return [...state, Object.assign({}, action.auth)];
default :
return state;
}
return state;
}
Die LoginApi
ist eine einfache ES6
Klasse. Die getUserInfo
erfordert Details wie access token
und andere Parameter erhalten von der LoginApi.authenticate
Aufruf.
Wie lese ich die Authentifizierungsinformationen aus der redux store
von einer non-react
Komponente?
Also bedeutet das, ich kann nicht auf den Laden/Staat aus irgendwelchen nicht reagierenden Komponenten zugreifen. Stattdessen sollte ich von der Aktion auf sie zugreifen und sie als Parameter an die externen Komponenten übergeben? –
Wenn Sie Ihren 'Speicher' exportieren (den, den Sie mit' createStore() 'erstellt haben), können Sie ihn dort importieren, wo Sie möchten, und' store.getState() 'aufrufen. muss nicht Bestandteil sein. In Ihrem Beispiel wurde jedoch ein Redux-Thunk verwendet, der bereits auf den Store zugreifen kann. Es liegt an dir – azium