如何使用`handleActions`处理不同的有效载荷类型?

时间:2019-06-17 00:04:13

标签: reactjs redux react-redux redux-actions

我使用handleActions中的redux-actions,如下代码:

export const productReducer = handleActions<Product, ProductActionProps>(
  {
    [ProductActionType.SEARCH_STAMP]: (state, { payload }) => {
        ...
    },
    [ProductActionType.SEARCH_PRODUCT]: (state, { payload }) => {
        ...
    },


它将有效负载类型定义为ProductActionProps。如果所有操作都使用相同的有效负载类型,则可以正常工作。但是我需要在此代码上添加其他操作类型,以侦听应用程序中route的更改。此操作使用不同的类型,我想知道哪种最佳方法可以解决该问题。

我正在考虑将新操作类型附加为ProductActionProps | RouteActionProps,如下所示:

export const productReducer = handleActions<Product, ProductActionProps | RouteActionProps>(
  {
    [ProductActionType.SEARCH_STAMP]: (state, { payload }) => {
        ...
        const { text } = payload as ProductActionProps;
    },
    [ProductActionType.SEARCH_PRODUCT]: (state, { payload }) => {
        ...
        const { text } = payload as ProductActionProps;
    },

但是问题是我必须像const { text } = payload as ProductActionProps;这样在每个动作处理程序中强制转换类型。有没有更好的方法来处理这种情况?

0 个答案:

没有答案