在页面加载时以redux形式传递初始值

时间:2017-03-30 13:00:15

标签: reactjs redux redux-form

我将初始值传递给redux格式。我在componentWillMount时获取数据。

当页面加载时,我收到错误,无法读取未定义的属性“id”。如果我刷新页面,数据将在那里。

任何人都可以帮助我。

这是我的代码。

componentWillMount() {
    this.props.actions.getService(this.props.params.Id);
}

 const mapStateToProps = (state) => {
     return {
         initialValues: {
             user_id:state.userInfo.data.user.id,
        }
    }
}

谢谢。

1 个答案:

答案 0 :(得分:1)

另一种方法是使用this.props.initialize,Redux Form为您添加。您还可以使用lodash的.get方法来防止必须添加如下所示的大量检查:if(nextState.userInfo&& nextState.userInfo.data&& nextState.userInfo.data.user&& nextState.userInfo .data.user.id&& nextState.userInfo.data.user.id!== this.state.userInfo.data.user.id)

这样的事情应该有效:

componentWillReceiveProps = (nextProps) => {
    if (_.get(nextProps, 'userInfo.data.user.id') !== _.get(this.props, 'userInfo.data.user.id')) {
        this.props.initialize({ user_id: nextProps.userInfo.data.user.id });
    }
}

mapStateToProps = (state) => {
    return {
        userInfo: state.userInfo,
    };
}