无法使用打字稿从 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.