#reactjs #typescript #redux #redux-toolkit
#reactjs #typescript #redux #redux-toolkit
Вопрос:
В настоящее время я изучаю typescript, создавая очень простое приложение todo с использованием React, Redux-toolkit и Typescript. Когда я пытаюсь получить доступ к данным из хранилища с помощью useSelector, я получаю объект, содержащий нужное мне значение (в данном случае массив Todo).
//TodoList.tsx
const todos = useSelector(selectTodos)
Консоль.журнал задач :
Object { todos: (1) […] }
//TodoSlice.tsx
export const selectTodos = (state: RootState): Todo[] => state.todos
Проблема в том, что я не могу получить доступ к массиву, потому что, согласно компилятору TS, это значение не существует (но, согласно консоли, оно есть !)
Если вам нужна дополнительная информация, ознакомьтесь с полным кодом здесь
Приветствия и заранее спасибо! (также прошу прощения за возможные опечатки)
Ответ №1:
На самом деле, то, что вы определяете как RootState
это не корневое состояние, а просто тип состояния вашего фрагмента.
Вы можете получить свои фактические RootState
данные через
export const store = configureStore({
reducer: {
todos: todosReducer
}
})
export type RootState = ReturnType<typeof store.getState>;
Тогда вы действительно заметите, что ваши задачи находятся в state.todos.todos
, а не в state.todos
.