使用redux在按钮单击上设置更新的状态道具

时间:2016-05-19 10:28:12

标签: react-native redux

我正在尝试创建一个按钮,在点击时显示和隐藏导航菜单。我正在使用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',
            });
        }
    }
};

1 个答案:

答案 0 :(得分:0)

我使用了一种非常奇怪的方法,我没有使用react-redux包整个事情,无法连接我的商店。我深深地潜入https://github.com/bartonhammond/snowflake并得到了解决,雪花的例子对于理解基础知识非常有帮助!