将值返回到mapState中的Redux-form字段,该字段在更新时会更改。

时间:2018-03-17 00:47:52

标签: reactjs redux redux-form redux-saga

我正在使用Redux-Saga将数据返回到州。我想采用该状态并将其设置为Redux-Form中的Field值。我想我可以使用像

这样的东西
dispatch(change('form', 'field', 'value')); 

复杂化是在saga返回值之后处理此问题。从而防止比赛事件。我在HOC中的mapStateToProps中有我需要的值。无论如何要注意改变那个道具并在改变时设置Redux形式值吗?

到目前为止我所研究的内容包括设置新的初始值。很高兴提供任何必要的代码,但我想从这里开始看看实际上有什么帮助解决这个问题与制作文本墙有关。

2 个答案:

答案 0 :(得分:1)

我通常会在mapDispatchToProps函数中连接,该函数将对我进行更改并在组件componentWillReceiveProps内调用它。

我假设你有mapStateToProps:

const mapStateToProps = state => ({
    myValue: state.myValue
});

有一个

const mapDispatchToProps = dispatch => ({
    changeFormValue: value => dispatch(change('form', 'field', value))
});

现在在componentWillReceiveProps(nextProps)内:

if(this.props.myValue !== nextProps.myValue) {
    this.props.changeFormValue(nextProps.myValue);
}

答案 1 :(得分:1)

componentDidUpdate(prevProps) {
  if(this.props.propOfInterest != prevProps.propOfInterest) {
    //dispatch change()
  }
}

您可以在componentDidUpdate()中捕捉更新; componentWillReceiveProps()从React 16.3开始弃用,将在React 17

中删除