Ich stelle heute lernen zu reagieren und redux, aber ich kann nicht herausfinden, wie Komponente zu zwingen, nach Statusänderung rerender.React-redux Komponente ist rerender nicht auf Speicherzustandsänderung
Hier ist mein Code:
const store = createStore(loginReducer);
export function logout() { return {type: 'USER_LOGIN'} }
export function logout() { return {type: 'USER_LOGOUT'} }
export function loginReducer(state={isLogged:false}, action) {
switch(action.type) {
case 'USER_LOGIN':
return {isLogged:true};
case 'USER_LOGOUT':
return {isLogged:false};
default:
return state;
}
}
class App extends Component {
lout(){
console.log(store.getState()); //IT SHOW INITIAL STATE
store.dispatch(login());
console.log(store.getState()); //IT SHOWS THAT STATE DID CHANGE
}
////THIS IS THE PROBLEM,
render(){
console.log('rendering')
if(store.getState().isLogged){
return (<MainComponent store={store} />);
}else{
return (
<View style={style.container}>
<Text onPress={this.lout}>
THE FOLLOWING NEVER UPDATE :(!!{store.getState().isLogged?'True':'False'}</Text>
</View>
);
}
}
Der einzige Weg, i-Update auslösen könnte
store.subscribe(()=>{this.setState({reload:false})});
innerhalb Konstruktor unter Verwendung, so dass ich manuell ein Update Zustand der Komponente auslösen rerender zu erzwingen.
aber wie kann ich sowohl den Speicher- als auch den Komponentenstatus verknüpfen?
Ist 'App.propTypes' erforderlich verwenden' connect() '? Es sieht so aus, als hättest du das einfach hineingeworfen. –
Vielen Dank! –