我必须用内部状态绑定自定义datepicker组件:
this.state = {
selectedDate: null,
dateText: ""
};
到redux表单字段组件。规则很简单-来自自定义组件外部的值将通过带有道具的redux表单传递给它:
{input: {value: "10-10-2010"} }
如您所见,我的自定义组件将不会反映这个新值,因为它的内部字段绑定到它的状态:
<TextField
value={this.state.dateText}
onChange={this.handleDateInputChange}
/>
所以我需要根据这个支柱来设定我的内部状态。这就是问题开始的地方:
如果我所说的“更新内部状态”是指:
发布于 2019-08-21 19:54:34
您可以尝试使用getDerivedStateFromProps
。此方法在React类组件中可用,并且是静态的。在这里,您可以根据更新的属性更新组件的状态。为此,还保存状态内的最后一个属性值,以便进行比较。
state = {
propDateText: this.props.dateText,
dateText: "",
}
getDerivedStateFromProps({ dateText }, { propDateText }) {
if(propDateText !== dateText) {
return { dateText, propDateText: dateText }
}
return null
}
这将将最后一组属性dateText
与实际属性dateText
进行比较,并相应地替换状态内的dateText
。
https://stackoverflow.com/questions/57598250
复制相似问题