Mul*_*yan 5 typescript reactjs react-native react-navigation react-navigation-v5
我尝试使用如下方式提取参数useRoute
。
const route = useRoute();
const { params } = route;
const {
id, name,
} = params;
Run Code Online (Sandbox Code Playgroud)
一切正常,但 linter 突出显示id
并name
出现以下错误。
属性“id”在类型“object | ”上不存在 不明确的
我该如何克服这个问题。
react-navigation
导出一些实用程序类型,使您在使用钩子和为自己的组件定义道具时更轻松。它们取决于您首先为导航器定义类型。
假设您有一个包含两个屏幕 A 和 B 的堆栈。首先定义每个屏幕需要哪些参数:
type StackParamsList = {
A: undefined;
B: {
id: string;
name: string;
};
}
Run Code Online (Sandbox Code Playgroud)
useRoute
在屏幕 B 中输入:
import { RouteProp } from '@react-navigation/native';
const route = useRoute<RouteProp<StackParamsList, 'B'>>();
route.params.id // OK
route.params.foo // error
Run Code Online (Sandbox Code Playgroud)
查看React-navigation 文档中的使用 Typescript 进行类型检查一文,了解更多详细信息以及键入导航堆栈的其他元素的示例。
归档时间: |
|
查看次数: |
4418 次 |
最近记录: |