小编Sum*_*mer的帖子

Redux useSelector 与 Typescript:为什么类型的对象是“未知”?

我一直在阅读有关将 Redux 与 Typescript 结合使用的文档,我认为我一切都正确,但无论如何我的编译器都会抱怨。

这是有问题的行:

// Widget.tsx

const error = useTypedSelector(state => state.error.widgetError)
//                                      ^
// Object is of type 'unknown'.  TS2571
Run Code Online (Sandbox Code Playgroud)

useTypedSelector是文档自定义挂钩推荐的,因此您不必stateRootState使用选择器时那样进行类型转换。

// store.ts
export type RootState = ReturnType<typeof store.getState>
Run Code Online (Sandbox Code Playgroud)
// hooks.ts
import { TypedUseSelectorHook, useSelector } from 'react-redux'
import { RootState } from './store'

export const useTypedSelector: TypedUseSelectorHook<RootState> = useSelector
Run Code Online (Sandbox Code Playgroud)

我不明白问题是什么。我的整个状态树都已键入,state回调中的参数也是如此。将鼠标悬停在 VS Code 中的对象上可以确认这一点。

是的。 这就是状态树。

我尝试了各种类型转换来解决它,但仍然遇到相同的错误。

const error = useSelector((state: RootState) => state.error.widgetError) // no
const error = useSelector<RootState, string | …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs redux

8
推荐指数
1
解决办法
2949
查看次数

标签 统计

reactjs ×1

redux ×1

typescript ×1