当状态更改为Redux时,React组件未更新

时间:2018-09-10 04:34:25

标签: reactjs redux react-redux

REDUX

return{...state,importGridData:importGridData)

将importGridData分配给redux初始状态内的状态变量

组件渲染

const {importGridData} = this.props
this.setState({importGrdData,importGridData)

我正在使用道具将数据输入到react组件中 我想将此数据分配到我的datagrid组件中

<DataGrid data={this.state.importGrdData}

我无法在render方法中提供setState,那么如何更新我的datagrid数据?

这里缺少什么吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

您似乎要从redux状态更新组件状态。

在这种情况下,如Bhojendra所述,您可以使用componentDidUpdate方法,如下所示。

componentDidUpdate(prevProps, prevState) {
  const { importGridData } = this.props;

  if(prevProps.importGridData !== importGridData) {
    // update the state
    this.setState({ importGrdData: importGridData })
  }
}

但是,如果您不这样做,则建议直接使用redux状态以render方法绑定网格,而不是将redux状态复制到本地状态,然后再将数据绑定到DataGrid。还有其他依赖性。

render() {
   const { importGridData } = this.props;
   return <DataGrid data={importGridData} />;
}

答案 1 :(得分:0)

我正在使用“ componentWillReceiveProps”生命周期来接收下一个道具。

componentWillReceiveProps(nextProps){  
    this.setState({   
        importGrdData:    nextProps,  
    });
}

代码是一个例子。希望对您有帮助。谢谢