typescript - 为什么 redux-starter-kit 中 PayloadAction 中的“布尔值”变为“假和真”?
问题描述
我在 React 项目中使用 redux-starter-kit。我试图在 createSlice 方法中描述 reducer 中的动作有效负载类型。
我有两个减速器:
setFetchingMenuItems: (
state: IPagesState,
{ payload }: PayloadAction<boolean>
) => {
state.isFetchingMenuItems = payload;
},
setMenuItems: (
state: IPagesState,
{ payload }: PayloadAction<IMenuItemViewModel[]>
) => {
state.menuItems = payload;
},
第二个按预期工作。如果我尝试调度 setMenuItems 操作,它只接受 IMenuItemViewModel 数组。
但是,如果我尝试使用 true 或 false 有效负载调度 setFetchingMenuItems 操作,TypeScript 会显示错误:“TS2345:'false' 类型的参数不可分配给'false & true' 类型的参数。”
我错过了什么?
更新:
这是我调度操作的异步方法:
export const fetchMenuItems = () => async (
dispatch: Dispatch
): Promise<void> => {
dispatch(setFetchingMenuItems(true));
try {
const { value } = await PageService.getMenuItems();
dispatch(setMenuItems(value));
} catch (e) {
console.log(e);
}
dispatch(setFetchingMenuItems(false));
};
TypeScript 版本是 3.5.1。
解决方案
问题出在 redux-starter-kit 中(我有 0.5.1 版)。版本0.6.0修复了它。所以我更新到 0.6.2 现在它可以工作了。
推荐阅读
- sql - 如何避免 SELECT 语句中用于排序的额外列到最终输出?
- swift5.1 - 如果从其他文件访问,则属性包装值给出非可选类型
- reactjs - create react app 正在打字稿中创建项目
- java - 同时使用 OnTouchListener 和 OnClickListener
- jquery - 提交按钮被点击时无作用
- javascript - 在 Firefox 扩展中的两个后台脚本之间共享变量
- android - ViewPager 指示器随着整个页面向上/向下滚动
- amazon-web-services - 如何在 AWS Cognito/Amplify 中的 federatedSignIn 中设置自定义属性
- javascript - 为一种形式传递了错误的图像 url,并从 Rails 4 中的部分形式更正到另一种形式
- python - Python 列表没有 isalpha()