我使用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;
这样在每个动作处理程序中强制转换类型。有没有更好的方法来处理这种情况?