【发布时间】:2021-12-31 00:45:35
【问题描述】:
您好,这是我的第一个问题。我正在尝试建立一个项目,其中模块以及 redux 和 saga 将使用 redux-injectors 注入到主应用程序中。在我的 sagas 中,我想使用 yield select 来检查一个动作是否更新了状态,然后继续。例如,当我发布图像时,我想确保发布文件没有错误,然后继续。我使用以下功能:
export const imageErrors = (state: RootState): IImagesErrorState => state.image.errors
然后在 saga.ts 文件中我这样使用它:
if (imagesErrors?.postImageError !== null) {
throw imagesErrors.postImageError
}
只要 state.image 从一开始就存在于根状态,它就可以正常工作。但是,当我想稍后使用 useInjectReducer 和 useInjectSaga 注入此状态时,我该怎么做?我显然得到一个错误
Property 'image' does not exist on type 'Reducer<CombinedState<{ user: CombinedState<{ auth: IAuthState; errors: IErrorState; }>; }>, AnyAction>'.ts(2339)
那么我们如何处理特定状态的选择器,因为状态还没有包含它们呢?
非常感谢。
【问题讨论】:
标签: redux css-selectors redux-saga inject