Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redux表单:首次提交后未更新的字段_Redux_Redux Form_Redux Saga - Fatal编程技术网

Redux表单:首次提交后未更新的字段

Redux表单:首次提交后未更新的字段,redux,redux-form,redux-saga,Redux,Redux Form,Redux Saga,我正在mongodb中使用redux表单,由于以下错误,我无法进行第二次提交: {"message":"No matching document found for id \"590b02068012fb3f83e5da9d\"","name":"VersionError"} 这是因为表单中未更新文档的版本 首次提交的工程和数据已更新;我从REST端点获取一个新对象,并将其设置为状态。无论如何,表单提交的版本值不会更新,这会导致错误。是否需要在onSubmitSuccess回调时手动触发此更新

我正在mongodb中使用redux表单,由于以下错误,我无法进行第二次提交:

{"message":"No matching document found for id \"590b02068012fb3f83e5da9d\"","name":"VersionError"}
这是因为表单中未更新文档的版本

首次提交的工程和数据已更新;我从REST端点获取一个新对象,并将其设置为状态。无论如何,表单提交的版本值不会更新,这会导致错误。是否需要在
onSubmitSuccess
回调时手动触发此更新

这是我的表格:

RegionEdit = reduxForm({
   form: 'RegionEdit', // a unique identifier for this form
})(RegionEdit);

const mapStateToProps = createStructuredSelector({
   initialValues: makeSelectRegion(),
});

function mapDispatchToProps(dispatch) {
   return {
      dispatch,
   };
}

export default connect(mapStateToProps, mapDispatchToProps)(RegionEdit);
以下是我提交表格的方式:

submit(values) {
    return new Promise((resolve, reject) => {
      this.props.dispatch(saveRegion({ values, resolve, reject }));
    });
  }
下面是一个传奇故事:

export function* saveRegion(data) {
  const payload = data.payload.values.toJS();
  const reject = data.payload.reject;
  const resolve = data.payload.resolve;
  const requestURL = `${ENDPOINT_URL}/${payload._id}`;
  try {
    const region = yield call(request, requestURL, {
      headers: {
        Accept: 'application/json, text/plain, */*',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(payload),
      method: 'PUT' });
    yield put(regionSaved(region));
    resolve(region);
  } catch (err) {
    yield put(regionSavingError(err));
    reject(err);
  }
}
regionSaved
触发
SAVE\u REGION\u SUCCESS
操作,使此代码在减速机中执行:

 case SAVE_REGION_SUCCESS:
      return state
        .set('region', fromJS(action.region));
我附上一些截图


我发现了问题,问题出在reduxForm实例化中,我只需要传递属性
enableReinitialize
设置为
true

RegionEdit = reduxForm({
   enableReinitialize: true,
   form: 'RegionEdit',  // a unique identifier for this form
})(RegionEdit);