我最近开始使用redux(之前我使用过mobx),这给我带来了一些问题,在成功响应后我尝试调用refresh,但是没有调用,我在哪里出错了? (刷新功能向后端发出请求并更新日期),(editSupply功能发送更改的数据)
export function refresh() {
return (dispatch, getState) => {
const state = getState()
const storeId = state.profile.currentStore.id
dispatch(actions.setLoading(true))
return apiGet(stockApi, buildRefreshParameters(storeId, state.stock))
.onOk((res) => {
dispatch(
actions.setData(
res.data.response.supplies.map((s) => ({
...s,
id: s.stockId,
salePrice: s.salePrice,
remainder: s.remainder,
purchases: s.purchases.map((p) => ({
...p,
purchasePrice: p.price,
})),
})),
),
)
dispatch(actions.setTotalPages(res.data.response.pages))
})
.useDefaultErrorHandlers(dispatch)
.afterAll(() => {
dispatch(actions.setLoading(false))
})
.startSingle()
}
}
export function editSupply(editedData) {
return (dispatch, {}) => {
forEachObjIndexed((data, id) => {
apiPut(stockApi + "/" + id, data)
.onOk(() => {
dispatch(
showMessage("Товар успешно отредактирован",
alertTypes.success),
)
refresh()
})
.useDefaultErrorHandlers(dispatch)
.start()
}, editedData)
}
}
答案 0 :(得分:2)
像这样呼叫// some script for running parallel builds
module.exports = [
require('./webpack.server.dev.config.js'),
require('./webpack.client.dev.config.js'),
];
:
refresh()
当您从一个动作中调用另一个动作时,请用dispatch(refresh())
将它们包装起来。您的dispatch()
看起来像是另一项操作,因为它接受refresh()
和dispatch
作为参数。