调用调度功能内部的调度功能反应redux

时间:2019-06-14 10:42:29

标签: reactjs redux react-redux

我最近开始使用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)
  }

}

1 个答案:

答案 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作为参数。