我正在尝试使用useRoute
提取如下所示的参数。
const route = useRoute();
const { params } = route;
const {
id, name,
} = params;
所有操作都很好,但是linter用下面的错误突出显示了id
和name
。
属性'id‘在类型'object’上不存在
我该如何克服这个问题。
发布于 2020-04-16 09:43:10
react-navigation
导出了几种实用程序类型,以便在使用钩子和为自己的组件定义道具时更容易使用。它们依赖于您首先为您的导航器定义类型。
假设您有一个有两个屏幕的堆栈,A和B。首先定义每个屏幕的参数是什么:
type StackParamsList = {
A: undefined;
B: {
id: string;
name: string;
};
}
在屏幕B中键入useRoute
:
import { RouteProp } from '@react-navigation/native';
const route = useRoute<RouteProp<StackParamsList, 'B'>>();
route.params.id // OK
route.params.foo // error
有关键入导航堆栈中其他元素的更多细节和示例,请查看react导航文档中的类型检查与类型记录文章。
https://stackoverflow.com/questions/61227429
复制相似问题