O componente React-redux não é renderizado novamente na alteração do estado da loja
Estou afirmando aprender a reagir e reduxar hoje, mas não consigo descobrir como forçar o componente a ser renderizado novamente após a mudança de estado.
Aqui está o meu código:
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>
);
}
}
A única maneira de acionar a atualização é usando
store.subscribe(()=>{this.setState({reload:false})});
construtor interno, para que eu acione manualmente um estado de atualização do componente para forçar a nova renderização.
mas como posso vincular os estados de loja e componente?