Я использую 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;
.Есть ли лучший способ справиться с этим делом?