redux - 输入 withlatestFrom
问题描述
我有以下选择器
export const featureAdapter: EntityAdapter<IRoute> = createEntityAdapter<IRoute>({
selectId: model => model.routeId,
});
export interface State extends EntityState<IRoute> {
selectedRouteId: string;
selectedPointId: string;
}
export const selectAllEntities: (state: object) => Dictionary<IRoute> = featureAdapter.getSelectors(selectRouteState).selectEntities;
export const selectedR: MemoizedSelector<object, string> = createSelector(selectRouteState, getSelectedRoute);
export const selectedRoute: MemoizedSelector<object, IRoute> = createSelector(
selectAllEntities,
selectedR,
(entities, id) => entities[id]
);
返回类型的东西IRoute
在我的效果中,我使用了最新的
onAction$ = this.actions$.pipe(
ofType<featureActions.onAction>(featureActions.ActionTypes.onAction),
concatMap(action =>
of(action).pipe(
withLatestFrom(this.store$.pipe(select(RoutesStoreSelectors.getById(), {routeId: action.payload.routeId}))),
)
),
switchMap(([action, route]) => {})
)
在 - 的里面
switchMap(([action, route])
路由变量的类型为 any。但它应该是类型IRoute
我怎样才能让它正常工作?
解决方案
我不明白为什么 TypeScript 无法推断类型,但您始终可以显式指定类型。
onAction$ = this.actions$.pipe(
ofType<featureActions.onAction>(featureActions.ActionTypes.onAction),
concatMap(action =>
of(action).pipe(
withLatestFrom(this.store$.pipe(select(RoutesStoreSelectors.getById(), {routeId: action.payload.routeId}))),
)
),
switchMap(([action, route]: [Action, IRoute]) => {})
)
推荐阅读
- asynchronous - 如何将迭代器转换为成功时的流或失败时的空流?
- javascript - 使用Javascript将对象数组转换为对象
- npm - 如何在 npm 脚本中更喜欢全局 npm 而不是本地 npm?
- javascript - 如何在单击时更改具有一个 id 的多个按钮类?
- go - 带有 go 和 dep 的 Heroku:`推送被拒绝:无法编译 Go 应用程序`
- python - 对单词进行计数和排序时,带有大 .txt 文件 Python 的 MemoryError
- jquery - jQuery:仅当用户输入正确的字符串格式时才启用提交按钮
- node.js - 如何将 mongoose 查询的结果保存到变量中,以便在代码中*稍后*使用它的值?
- ios - 我想从 iOS 中的 html 内容中删除 wordpress 简码
- python - 如何在每次迭代中根据索引替换列值。以便每个表在每次迭代中都有新的值集