REDUX
return{...state,importGridData:importGridData)
这里导入GridData分配给redux初始状态内的状态变量
组件渲染
const {importGridData} = this.props
this.setState({importGrdData,importGridData)
我使用props将数据输入到react组件中我希望将这些数据分配到我的datagrid组件中
<DataGrid data={this.state.importGrdData}
我不能在render方法中给出setState,那么如何更新我的datagrid数据呢?
这里有什么遗漏的东西吗?
提前致谢。
看起来您想要从redux状态更新组件状态。
在这种情况下,如Bhojendra所述,您可以使用componentDidUpdate
方法,如下所示。
componentDidUpdate(prevProps, prevState) {
const { importGridData } = this.props;
if(prevProps.importGridData !== importGridData) {
// update the state
this.setState({ importGrdData: importGridData })
}
}
但是,如果您没有任何其他依赖项,我建议不要将redux状态复制到本地状态然后将数据绑定到DataGrid,而是建议直接使用redux
状态绑定render
方法中的网格。
render() {
const { importGridData } = this.props;
return <DataGrid data={importGridData} />;
}
它应该是冒号:
而不是逗号,
:
this.setState({importGrdData:importGridData})
啊,我看到拼写差异(Grd和Grid):
另外,你可以写:(因为你有相同的名字)
this.setState({importGrdData})
您可以更新componentDidUpdate挂钩中的状态,以便在获取道具后它将更新状态:
componentDidUpdate(prevProps, prevState) {
if(this.state.importGrdData !== prevState.importGrdData) {
// update the state
}
}
要了解有关componentDidUpdate的更多信息,请查看docs。
只有在极少数情况下,您才可以使用getDerivedStateFromProps。
我正在使用“componentWillReceiveProps”生命周期来接收下一个道具。
componentWillReceiveProps(nextProps){
this.setState({
importGrdData: nextProps,
});
}
代码就是一个例子。我希望它对你有所帮助。谢谢