我正在尝试创建一个按钮,在点击时显示和隐藏导航菜单。我正在使用Redux将当前状态转换为Component,但是某些东西无法使用onPress函数。 当按下按钮我想检查this.state.showNavigation的当前状态(可以是true / false)但是我在点击按钮后立即得到“未定义不是对象”错误。
我想我在这里遇到了生命周期问题。我已经尝试通过在componentWillMount中设置状态来解决这个问题:
componentWillUpdate(){
this.state = NavigationStore.getState();
}
无论如何,这没有帮助。一些建议非常感谢。谢谢!
继承我的代码:
class NavigationButton extends React.Component {
constructor(props, context) {
super(props, context);
this.state = NavigationStore.getState();
NavigationStore.subscribe(() => {
this.setState(NavigationStore.getState());
});
// alert(this.state.showNavigation);
}
render() {
return (
<TouchableOpacity
onPress={this.handlePressButton}
style={navigationButtonStyles.button}>
<Image source={buttonImage} />
</TouchableOpacity>
);
}
handlePressButton() {
if(this.state.showNavigation){
NavigationStore.dispatch({
type: 'HIDE_NAVIGATION',
});
}
else{
NavigationStore.dispatch({
type: 'SHOW_NAVIGATION',
});
}
}
};
答案 0 :(得分:0)
我使用了一种非常奇怪的方法,我没有使用react-redux包整个事情,无法连接我的商店。我深深地潜入https://github.com/bartonhammond/snowflake并得到了解决,雪花的例子对于理解基础知识非常有帮助!