保存错误后重置 - 未恢复到正确的初始值

诺蒂达

我有一个非常奇怪的错误。我在这里复制了最简单的测试用例场景:https : //codesandbox.io/s/PNyPwyWP2

我还上传了一个解释性的截屏视频,截屏视频在 youtube 上 - https://youtu.be/iILiFieO-gk

我的目标是我有一个带有单个字段的表单,一个“重置”按钮和一个“保存”按钮。单击“保存”将表单值保存到我store调用的save. 单击“重置”应将表单值重置为最后一个“原始”值(中的值initialValues)。

但是我的问题是,保存表单后,“重置”按钮应该将其重置为“原始”值(新保存的值,initialValues 中的值),但它正在将其重置为“旧原始值”

这是我的完整应用程序代码:

import React from 'react'
import ReactDOM from 'react-dom'
import { Provider } from 'react-redux'
import { createStore, combineReducers } from 'redux'
import { connect } from 'react-redux'
import { Field, reduxForm, reducer as form } from 'redux-form'

// ACTION & ACTION CREATOR
const SAVE_FORM = 'SAVE_FORM';
function saveForm(values) {
  return {
    type: SAVE_FORM,
    values
  }
}
// REDUCER - save
const INITIAL = { url:'hiiii' };
function save(state=INITIAL, action) {
  switch(action.type) {
    case SAVE_FORM: return action.values;
    default: return state;
  }
}


// STORE
const reducers = combineReducers({ form, save });
const store = createStore(reducers);

// MY FORM COMPONENT
class MyFormDumb extends React.Component {
  handleReset = e => {
    e.preventDefault();
    this.props.reset();
  }
  render() {
    console.log('MyFormDumb :: pristine:', this.props.pristine, 'initialValues:', this.props.initialValues);
    return (
      <form onSubmit={this.props.handleSubmit}>
        <label htmlFor="url">URL</label>
        <Field name="url" component="input" type="text" />
        <button onClick={this.handleReset}>Reset</button>
        <button type="submit">Save</button>
      </form>
    )
  }
}

const MyFormControlled = reduxForm({ form:'my-form' });

const MyFormSmart = connect(
  function(state) {
    return {
      initialValues: state.save
    }
  }
);

const MyForm = MyFormSmart(MyFormControlled(MyFormDumb));

// MY APP COMPONENT
class App extends React.PureComponent {
  submitHandler = (values, dispatch, formProps) => {
    dispatch(saveForm(values));
  }
  render() {
    return (
      <Provider store={store}>
          <div className="app">
            <MyForm onSubmit={this.submitHandler} />
          </div>
      </Provider>
    )
  }
}

// RENDER
ReactDOM.render(<App />, document.getElementById('app'))

根据文档enableReinitialize: true在您的 reduxForm 组件上使用标志

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

提交后下拉列表值将重置为初始值

来自分类Dev

使用可重置的初始值累积事件

来自分类Dev

PHP更改并保存具有初始值的cookie

来自分类Dev

动画完成后,如何恢复DataTrigger ExitActions中的初始值?

来自分类Dev

DateTimePicker的初始值错误

来自分类Dev

恢复异步方法后值未更新

来自分类Dev

请求后更新初始值

来自分类Dev

pe:inputNumber值重置为p:tab中的初始值

来自分类Dev

TextFormField不会重置其初始值

来自分类Dev

在OpenModelica中保存开始/初始猜测值并从文件中实现初始值

来自分类Dev

分组后如何覆盖值,但保留组的初始值

来自分类Dev

useState挂钩-状态丢失,即重置为初始值

来自分类Dev

发布数据后的RangeSlider ReactJS始终检索初始值

来自分类Dev

将状态重置为初始值,而不是最新的状态

来自分类Dev

错误:非常量的初始值必须是左值

来自分类Dev

在JAVA中保存图像后,RGB值未正确更改

来自分类Dev

提交后下拉列表值将重置为初始值

来自分类Dev

使用可重置的初始值累积事件

来自分类Dev

呈现其他视图控制器后,UIView重置为初始值

来自分类Dev

出现错误“变量在其自身的初始值内使用”

来自分类Dev

在嵌套循环中将变量重置为初始值

来自分类Dev

请求后更新初始值

来自分类Dev

Java For()循环错误的初始值,错误的最终停止点

来自分类Dev

ember:实例初始值设定项中的 pushPayload 错误

来自分类Dev

保存和加载对象后,If-Method 返回错误值

来自分类Dev

CKEditor 4.7x - 未捕获的语法错误:无效的速记属性初始值设定项

来自分类Dev

DataGridComboBoxColumn 值在选择后重置

来自分类Dev

初始值设定项列表的模板替换错误

来自分类Dev

天文台初始值错误

Related 相关文章

  1. 1

    提交后下拉列表值将重置为初始值

  2. 2

    使用可重置的初始值累积事件

  3. 3

    PHP更改并保存具有初始值的cookie

  4. 4

    动画完成后,如何恢复DataTrigger ExitActions中的初始值?

  5. 5

    DateTimePicker的初始值错误

  6. 6

    恢复异步方法后值未更新

  7. 7

    请求后更新初始值

  8. 8

    pe:inputNumber值重置为p:tab中的初始值

  9. 9

    TextFormField不会重置其初始值

  10. 10

    在OpenModelica中保存开始/初始猜测值并从文件中实现初始值

  11. 11

    分组后如何覆盖值,但保留组的初始值

  12. 12

    useState挂钩-状态丢失,即重置为初始值

  13. 13

    发布数据后的RangeSlider ReactJS始终检索初始值

  14. 14

    将状态重置为初始值,而不是最新的状态

  15. 15

    错误:非常量的初始值必须是左值

  16. 16

    在JAVA中保存图像后,RGB值未正确更改

  17. 17

    提交后下拉列表值将重置为初始值

  18. 18

    使用可重置的初始值累积事件

  19. 19

    呈现其他视图控制器后,UIView重置为初始值

  20. 20

    出现错误“变量在其自身的初始值内使用”

  21. 21

    在嵌套循环中将变量重置为初始值

  22. 22

    请求后更新初始值

  23. 23

    Java For()循环错误的初始值,错误的最终停止点

  24. 24

    ember:实例初始值设定项中的 pushPayload 错误

  25. 25

    保存和加载对象后,If-Method 返回错误值

  26. 26

    CKEditor 4.7x - 未捕获的语法错误:无效的速记属性初始值设定项

  27. 27

    DataGridComboBoxColumn 值在选择后重置

  28. 28

    初始值设定项列表的模板替换错误

  29. 29

    天文台初始值错误

热门标签

归档