反应redux,编辑表格不起作用

时间:2017-03-29 15:49:41

标签: reactjs react-redux redux-form

我很反应。我正在使用redux进行反应。我有一个表单(我使用redux-form),通过它我可以保存数据或编辑数据。 我的问题是,在编辑模式下,我使用componentWillReceiveProps填充数据。并且填充完整,现在当我尝试清除表格上的任何字段时再次填充。

componentWillReceiveProps(nextProps){
    this.props.dispatch(initialize('NewProject', nextProps.project.project[0]));
  }

任何帮助都会非常充实。

1 个答案:

答案 0 :(得分:2)

您是否有理由不在其他地方调度此操作,例如componentDidMount?我不能说没有看到更多的代码,但是每当你编辑你的表单时,React可能再次调用componentWillReceiveProps并用你给你的组件的行为覆盖你做的任何事情。

根据React documentation

  

请注意,即使道具没有更改,React也可以调用此方法,因此如果您只想处理更改,请确保比较当前值和下一个值。当父组件导致组件重新渲染时,可能会发生这种情况。

如果可能,您可以将调度移至更可预测的事件,例如componentDidMount。通常,如果组件具有多个可能的状态,则您的render方法应该能够处理不同的情况。您还可以创建组件的editsave版本,并根据您收到的props呈现一个或另一个。正如您所说,“填充”数据的最佳方法是为您的组件定义propTypes,然后使用props将该数据插入render方法中的元素。