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失败