3
我在說要今天學習react和redux,但我無法弄清楚如何強制組件在狀態更改後重新提交。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})});
內部構造,讓我手動觸發組件的更新狀態強制重新呈現。
但我怎樣才能連接存儲和組件狀態?
是'使用'連接()'需要App.propTypes'?看起來你只是把它扔在那裏。 –
非常感謝你! –