Reactjs 保存时重新加载重复

Reactjs 保存时重新加载重复,reactjs,promise,react-redux,react-hooks,Reactjs,Promise,React Redux,React Hooks,我正在基于React样板文件模板进行React.JS项目。不幸的是,react样板文件只有一个将远程数据加载到redux的示例。没有保存示例 我能够编写保存动作、减速器和传奇,没有问题。这些都是相当标准的东西。然而,有一个问题阻碍了我,我无法解决——保存后重新加载存储 我做了以下工作: const mapDispatchToProps = dispatch => { return { loadEvent: eventId => dispatch(loadEvent(eve

我正在基于
React样板文件
模板进行React.JS项目。不幸的是,
react样板文件
只有一个将远程数据加载到redux的示例。没有保存示例

我能够编写
保存
动作、减速器和传奇,没有问题。这些都是相当标准的东西。然而,有一个问题阻碍了我,我无法解决——保存后重新加载存储

我做了以下工作:

const mapDispatchToProps = dispatch => {
  return {
    loadEvent: eventId => dispatch(loadEvent(eventId)),
    saveEvent: values => {
      const event = dispatch(saveEvent(values))
      return dispatch(loadEvent(event.id || values.id))
    }
  }
}
我希望上面的代码作为一个承诺——在保存完成后按id重新加载事件


它不像我需要的那样工作。我调用了加载,但存储中没有新数据。

您应该为每个请求创建一些
xxxx\u请求
xxxx\u成功|失败
操作
类型
(是否保存并不重要)。 我不知道您是redux saga或redux thunk,但在您的请求获取完成后,您应该发送
xxxx|u SUCCESS | FAILURE
,然后在您的reducer中,获取数据并将其存储在您的存储上


然后,您可以使用选择器从组件中的redux存储中获取数据。

您应该为每个请求创建一些
xxxx_请求
xxxx_成功|失败
操作
类型
(是否保存并不重要)。 我不知道您是redux saga或redux thunk,但在您的请求获取完成后,您应该发送
xxxx|u SUCCESS | FAILURE
,然后在您的reducer中,获取数据并将其存储在您的存储上


然后,您可以使用选择器从组件中的redux存储中获取数据。

我解决了这个问题,将所有内容都粘贴在我的传奇中,如下所示:

try {
  // Call our request helper (see 'utils/request')
  const createdEvent = yield call(request, requestURL, {
    method: !isNaN(id) && id !== undefined && id !== null ? 'PUT' : 'POST',
    body: JSON.stringify(event)
  })
  yield put(eventLoaded(createdEvent, id))
  yield put(loadEvent(createdEvent['id']))
} catch (err) {
  yield put(eventLoadingError(err))
}

现在,这件事按我需要的方式进行。

我解决了这个问题,将我的传奇故事中的所有内容都粘在了一起,如下所示:

try {
  // Call our request helper (see 'utils/request')
  const createdEvent = yield call(request, requestURL, {
    method: !isNaN(id) && id !== undefined && id !== null ? 'PUT' : 'POST',
    body: JSON.stringify(event)
  })
  yield put(eventLoaded(createdEvent, id))
  yield put(loadEvent(createdEvent['id']))
} catch (err) {
  yield put(eventLoadingError(err))
}

现在,这东西按我需要的方式工作。

我有行动。您在reducer中分派了什么?上面我对loadEvent的操作是:
导出函数loadEvent(id){return{type:LOAD_EVENT,id}}
您建议saveEvent()操作是什么?您应该创建
LOAD_EVENT_REQUEST
,并在其中调用api REQUEST,然后基于api调用响应,调度
LOAD\u EVENT\u SUCCESS
LOAD\u EVENT\u FAILURE
我有操作。您在reducer中分派了什么?上面我对loadEvent的操作是:
导出函数loadEvent(id){return{type:LOAD_EVENT,id}}
您建议saveEvent()操作是什么?您应该创建
LOAD_EVENT_REQUEST
,并在其中调用api REQUEST,然后基于api调用响应,调度
加载事件\u成功
加载事件\u失败