Компонент React-redux не рендерится при изменении состояния хранилища
Я утверждаю, что сегодня нужно учиться реагировать и сокращаться, но я не могу понять, как заставить компонент перерисовываться после изменения состояния.
Вот мой код:
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>
);
}
}
Единственный способ вызвать обновление - использовать
store.subscribe(()=>{this.setState({reload:false})});
внутри конструктора, так что я вручную запускаю состояние обновления компонента, чтобы вызвать рендеринг.
но как я могу связать как магазин, так и состояние компонентов?