当前位置: 首页 > 知识库问答 >
问题:

更改附加到redux状态的值时,redux表单字段将重置

徐嘉谊
2023-03-14

我已将redux表单配置为三个字段,如下所示:

function mapState(state) {
    return {
        initialValues: {
            terms: state.register.toJS().terms.value
        }
    };
};

[map dispatch object here]

export const MyFormContainer = reduxForm({
    form: 'myForm',
    fields: ['email', 'password', 'terms']
}, mapState, mapDispatch)(MyForm);

每个字段根据文档传播传递的道具,例如{…email}。terms复选框包含一个onChange,它调用actionCreator来更新我的redux状态:

<input type="checkbox" {...terms} onChange={this.handleTermsToggle.bind(this)}/>

单击复选框时,电子邮件和密码字段都重置为空白,这不是我想要的。

共有1个答案

酆勇
2023-03-14

原来我从错误的角度处理这个问题。我需要完全删除状态树的那一大块,而是在外部组件中使用react-redux中的{Change}来修改值。

import { change } from 'react-redux'

<button onClick={() => {
  this.props.change('myForm', 'terms' true);
}}>Click Me</button>

... and don't forget to map change to mapDispatchToProps
 类似资料:
  • 问题内容: 保持不变,尽管我在函数中调度了一个动作: 输出为NO_AUTH(的初始值) 减速器: 知道为什么吗? 问题答案: 您当前正在直接在未映射到的componentDidMount内部调度: 这应该做的工作: 现在,这将获得authState:

  • 本文向大家介绍Redux怎样重置状态?相关面试题,主要包含被问及Redux怎样重置状态?时的应答技巧和注意事项,需要的朋友参考一下 const appReducer = combineReducers({ /* your app’s top-level reducers */ }) const rootReducer = (state, action) => { if (action.type =

  • 问题内容: 使用v7时,我发现无法设置字段值。现在,在我中,我有两个部分。当第一个组件值更改时,第二个值将清除。 在课堂上渲染: 现在,我添加了更改钩子,以及如何更改其他值 问题答案: 您可以使用onChange逻辑并使用redux-form中的操作 根据文档: change(field:String,value:any):函数 更改Redux存储中字段的值。这是绑定动作的创建者,因此不返回任何内

  • 使用Redux表单中的initializingFromState示例,我试图动态地设置它。这是为了编辑书籍列表中的特定书籍,并使用在express.js中设置的简单api。 完整的容器在下面。不知何故,我需要在mapStateToProps函数中传入。在这个例子中,它是通过一个静态对象完成的,但是我不知道如何使用我通过获取的信息,并将其传递给。 容器: 谢谢你。

  • 我想改变菜单的状态,当路由改变,但不能使它工作。 我面临的问题是:当我点击Navbar中的链接时。路线改变了,但它不会关闭。当路线更改时,如何更改菜单状态?react-router-redux能帮我吗? 行动 减速器 组件 子组件

  • 我有一些“ChangeMainItem”操作(在我的例子中,它是由外部系统或可能的组件之一调度的)。此操作(例如)仅更新reducer中状态的一个属性(例如)。 我的组件A和B需要对此状态更改做出反应:显示加载指示器、获取其他数据并显示结果。顺序动作可以通过一些异步动作库来完成,但是我应该把调度异步动作放在哪里呢?显然,我不能在组件A和B的reducer中分派异步操作,我也不想将原始操作更改为异步