reactjs - 无法使用 typescript 从 redux 工具包访问数据
问题描述
我目前正在通过使用 React、Redux-toolkit 和 Typescript 创建一个非常简单的 todo 应用程序来学习 typescript。当我尝试使用 useSelector 从存储中访问数据时,我得到一个包含我想要的值的对象(在本例中为 Todo 数组)。
//TodoList.tsx
const todos = useSelector(selectTodos)
待办事项的 Console.log :
Object { todos: (1) […] }
//TodoSlice.tsx
export const selectTodos = (state: RootState): Todo[] => state.todos
问题是我无法访问数组,因为根据 TS 编译器,这个值不存在(但根据控制台它在那里!)
如果您想了解更多信息,请在此处查看完整代码
干杯,并提前感谢!(也很抱歉可能的错别字)
解决方案
实际上,您定义RootState
的不是根状态,而只是您的切片状态类型。
你可以RootState
通过
export const store = configureStore({
reducer: {
todos: todosReducer
}
})
export type RootState = ReturnType<typeof store.getState>;
然后您实际上会注意到您的待办事项是 in state.todos.todos
,而不是 in state.todos
。
推荐阅读
- php - 如何使用正则表达式在 php 中查找完全相同的序列?
- c++ - 与对所有人使用相同的 typedef 字符串相比,在 C 中指定不同的 typedef 字符串长度是否会减少内存使用?
- python - 在 Python 中模拟像 Sqlite3 这样的元组排序
- vue.js - 无法使用 v-pre 检测 vue 组件中的组件
- css - box-shadow 不会出现在轮播上方
- python - 我怎样才能让球移动得更快?
- regex - 从文本文件的特定列中提取正则表达式模式,然后执行减法
- javascript - $.each 中的重复参数值
- npm - 当我对代码进行一些更改时,NestJs 中的 npm run start:dev 不会重建
- typescript - 打字稿重复导入“时刻”