在react-navigation v5中处理路径名的最佳实践。

问题描述 投票:1回答:1

我是一个新手,想知道如何处理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完全去掉,但缺点是在输入路径名时不能自动完成,这可能会导致难以发现的错误。至少我认为可能会发生这种情况。

有没有一种首选的方法来处理这个问题?我看了一些其他的模板项目,但它们都只是使用字符串作为路径名。

react-native react-navigation react-navigation-v5
1个回答
2
投票

多亏了一个同事,我找到了解决方案。

解压一个常量的语法是这样的:

export type RootStackParamList = {
  [HOME_ROUTE]: undefined;
  [LOGIN_ROUTE]: undefined;
  [REGISTER_ROUTE]: undefined;
};
© www.soinside.com 2019 - 2024. All rights reserved.