在全局状态更新后,我需要更新本地状态。
我尝试了mapStateToProps,但这只会将全局状态映射到组件中,而不会更新本地状态。
请参考图片以查看代码。
在更新mapStateToProps之后,应该将selected_smsf_member上的值解析为用于创建表单的本地状态。
我也乐于接受更好方法的建议。基本上,我想做的是在先前的组件上显示所选成员的详细信息。
答案 0 :(得分:2)
您可以看到mapStateToProps
,它的名字说明了一切,它将状态映射到道具,您可以在道具中访问其变量,例如this.props.selected_smsf_member
中的component
。如果您仍然想使用getDerivedStateFromProps()
更新本地状态,请先阅读此博客:https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
答案 1 :(得分:1)
您可以利用getDerivedStateFromProps。您可以检查道具并在道具改变时从道具中获取状态。不过有几点注意事项:
state.memberDetailsForm
初始化为假值,并检查getDerivedState
函数中的值,否则每次道具更改时都会派生您的状态。实施此方法将为您提供所需的输出。
static getDerivedStateFromProps(props, state) {
if (!state.memberDetailsForm) {
return { memberDetailsForm: props.selected_smsf_member }
}
}