reactjs - Redux 表单问题(dispatch 不起作用?)
问题描述
更新:从我给你的信息中无法解决,问题是代码在 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 形式的相同组件在一种情况下可以工作,而在另一种情况下却不行。
整个代码过于复杂且高度耦合,因此无法轻松共享或逐部分测试。
解决方案
您/代理商似乎没有将表单连接到商店:
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);
推荐阅读
- gitlab - 根据条件在 GitLab 中跳过 YAML 文件中的块
- mongodb - 如何使用 mongodb 中两个集合的聚合计算利润?
- python - 如何在使用 R markdown 时将 Python 代码的输出拟合到 pdf 中?
- stenciljs - StencilJS:可以在@State 上使用@Watch
- php - 为什么我的数据没有提交到数据库中
- mysql - SQL 错误 (1093) 您不能在 FROM 子句中指定要更新的目标表和子查询
- java - 连接Android Auto后RecyclerView ViewHolders消失
- java - JFrame - 使用 JSlider 更改正在播放的音频文件的音量
- python - googletrans 几分钟后超时它会很好地工作,googletrans 每天限制时间吗?
- r - R:将栅格聚合到 shapefile 多边形