无法使用打字稿从 redux 工具包访问数据
Can't access data from redux toolkit with typescript
我目前正在通过使用 React、Redux-toolkit 和 Typescript 创建一个非常简单的待办事项应用程序来学习 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 编译器,这个值不存在(但根据控制台,它存在!)
如果您想了解更多信息,请查看完整代码here
干杯,提前致谢!
(也很抱歉可能出现错别字)
实际上,您定义为RootState
的是不是根状态,而只是您的切片状态类型。
您可以通过
获取实际的RootState
export const store = configureStore({
reducer: {
todos: todosReducer
}
})
export type RootState = ReturnType<typeof store.getState>;
然后您实际上会注意到您的待办事项在 state.todos.todos
中,而不是在 state.todos
.
中
我目前正在通过使用 React、Redux-toolkit 和 Typescript 创建一个非常简单的待办事项应用程序来学习 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 编译器,这个值不存在(但根据控制台,它存在!)
如果您想了解更多信息,请查看完整代码here
干杯,提前致谢! (也很抱歉可能出现错别字)
实际上,您定义为RootState
的是不是根状态,而只是您的切片状态类型。
您可以通过
获取实际的RootState
export const store = configureStore({
reducer: {
todos: todosReducer
}
})
export type RootState = ReturnType<typeof store.getState>;
然后您实际上会注意到您的待办事项在 state.todos.todos
中,而不是在 state.todos
.