更新:无法从我提供的信息中解决问题,问题是ComponentReceiveProps挂钩中的代码已更新,并且原始值覆盖了更改后的值。
我从事的外部项目开发工作做得不好。
它是使用React,Redux和Redux-Forms的前端应用程序
在两个不同的页面中使用一种形式。它在一页中效果很好,但在另一页中却没有反应。我无法通过UI或changeFieldValue
函数来更改输入的值。 Redux状态不变。
在两种情况下,都使用相同的组件。它包含reduxForm
函数。
const mapDispatchToProps = dispatch => ({
changeFieldValue: (field, value) => dispatch(change('ContractConsumption', field, value)),
});
class ContractConsumption extends React.Component {
// ...
}
ContractConsumption = reduxForm({
form: 'ContractConsumption',
enableReinitialize: true
})(ContractConsumption);
任何帮助将不胜感激。这让我感到困惑,为什么具有redux形式的相同组件在一种情况下会起作用,而在另一种情况下不会起作用。
整个代码过于复杂和高度耦合,因此无法轻松共享或进行部分测试。
答案 0 :(得分:1)
您/代理商似乎未将表单连接到商店:
import React, { Component } from 'react';
import { reduxForm } from 'redux-form';
import { connect } from 'react-redux';
class Example extends Component {
// ...
};
const mapStateToProps = (state) => ({
// ...
});
const mapDispatchToProps = (dispatch) => ({
// ...
});
Example = connect(
mapStateToProps,
mapDispatchToProps
)(Example);
export default reduxForm({
form: 'example' // a unique name for this form
})(Example);