我是一个新手,想知道如何处理react-navigation v5的路由名称。
我正在开始一个公司内部的模板项目,使用4版的react-navigation,然后更新到5版。到目前为止,一切运行正常。
现在的问题是,这个项目使用的文件中所有的路径名都被定义为 "so"。
export const HOME_ROUTE = 'Home';
export const LOGIN_ROUTE = 'Login';
export const REGISTER_ROUTE = 'Register';
这在react -navigation v5中也能用。
然后我想消除任何类型的导航道具的警告。在 文件 说明我应该添加类型定义。然后我遇到了第一个问题。
对于路由常量,我本想这样做。
export type RootStackParamList = {
HOME_ROUTE: undefined;
LOGIN_ROUTE: undefined;
REGISTER_ROUTE: undefined;
};
这行不通,因为我找不到在类型定义中使用常量的方法(这很合理)。
我想把routeConstants完全去掉,但缺点是在输入路径名时不能自动完成,这可能会导致难以发现的错误。至少我认为可能会发生这种情况。
有没有一种首选的方法来处理这个问题?我看了一些其他的模板项目,但它们都只是使用字符串作为路径名。
多亏了一个同事,我找到了解决方案。
解压一个常量的语法是这样的:
export type RootStackParamList = {
[HOME_ROUTE]: undefined;
[LOGIN_ROUTE]: undefined;
[REGISTER_ROUTE]: undefined;
};