【发布时间】:2021-03-29 21:00:17
【问题描述】:
我正在尝试根据输入的值 (screenName) 将类型(屏幕参数类型)传递给字段。
这是导航道具。
export interface IEditProfileStackNavigatorProps<RouteName extends keyof EditProfileRoutes> {
navigation: StackNavigationProp<EditProfileRoutes, RouteName>;
route: RouteProp<EditProfileRoutes, RouteName>;
}
路线
export type EditProfileRoutes = {
Options: undefined;
Name: undefined;
Username: { token: string };
Bio: undefined;
Location: undefined;
VerifyUser: {
screenToNavigateTo: keyof Omit<EditProfileRoutes, 'VerifyUser'> | keyof ManageAccountRoutes;
params: any;
};
};
我希望 params 根据导航功能中插入的屏幕名称接收屏幕的参数类型。
navigation.navigate('VerifyUser', {
screenToNavigateTo: 'Username',
params: { some: 'value' } }
)}
如果插入screenToNavigateTo 的屏幕是username,则参数类型将为{ token: string },其余为undefined。
我的方法是做类似的事情
export type EditProfileRoutes = {
Options: undefined;
Name: undefined;
Username: { token: string };
Bio: undefined;
Location: undefined;
VerifyUser: {
screenToNavigateTo: keyof Omit<EditProfileRoutes, 'VerifyUser'> | keyof ManageAccountRoutes;
params?:EditProfileRoutes['VerifyUser']['screenToNavigateTo'];
};
};
但这似乎不起作用
【问题讨论】:
标签: javascript typescript react-native types react-navigation