Return 来自 mapState 的 Redux 表单字段的值在更新时会发生变化。
Return a value to a Redux-form Field from mapState that changes when updated.
我正在使用 Redux-Saga 来 return 数据状态。我想采用该状态并将其设置为 Redux-Form 中的 Field 值。我想我可以使用
dispatch(change('form', 'field', 'value'));
在 saga returns 值之后处理这个问题。从而防止比赛事件。我在 HOC 的 mapStateToProps 中拥有我需要的值。无论如何要注意对该道具的更改并在更改时设置 Redux 形式的值?
到目前为止我研究过的事情包括设置新的初始值。很高兴提供任何必要的代码,但我想我应该从这里开始,看看与制作文字墙相比,什么能真正帮助解决这个问题。
我通常会连接一个 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);
}
componentDidUpdate(prevProps) {
if(this.props.propOfInterest != prevProps.propOfInterest) {
//dispatch change()
}
}
您可以在 componentDidUpdate()
中获取更新; componentWillReceiveProps()
从 React 16.3 开始弃用,并将在 React 17 中删除
我正在使用 Redux-Saga 来 return 数据状态。我想采用该状态并将其设置为 Redux-Form 中的 Field 值。我想我可以使用
dispatch(change('form', 'field', 'value'));
在 saga returns 值之后处理这个问题。从而防止比赛事件。我在 HOC 的 mapStateToProps 中拥有我需要的值。无论如何要注意对该道具的更改并在更改时设置 Redux 形式的值?
到目前为止我研究过的事情包括设置新的初始值。很高兴提供任何必要的代码,但我想我应该从这里开始,看看与制作文字墙相比,什么能真正帮助解决这个问题。
我通常会连接一个 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);
}
componentDidUpdate(prevProps) {
if(this.props.propOfInterest != prevProps.propOfInterest) {
//dispatch change()
}
}
您可以在 componentDidUpdate()
中获取更新; componentWillReceiveProps()
从 React 16.3 开始弃用,并将在 React 17 中删除