我将初始值传递给redux格式。我在componentWillMount时获取数据。
当页面加载时,我收到错误,无法读取未定义的属性“id”。如果我刷新页面,数据将在那里。
任何人都可以帮助我。
这是我的代码。
componentWillMount() {
this.props.actions.getService(this.props.params.Id);
}
const mapStateToProps = (state) => {
return {
initialValues: {
user_id:state.userInfo.data.user.id,
}
}
}
谢谢。
答案 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,
};
}