gpt4 book ai didi

react-navigation v5 中的 Typescript StackNavigatonProps 和 Screen props

转载 作者:行者123 更新时间:2023-12-04 11:30:51 26 4
gpt4 key购买 nike

为屏幕的 navigation 定义类型的最佳方法是什么? Prop ,当屏幕在路由器的不同文件中时?假设我有一个文件,我在其中定义了路由:

//Router.tsx

type RootStackParamList = {
Home: undefined;
Profile: undefined;
}

const Stack = createStackNavigator<RootStackParamList>();

// Component rendering navigator
const Router = () => {
.
.
.
}

然后我有单独的屏幕文件:
// Home.tsx


// here has to be the same RootStackParamList
// that we've already defined in Router.tsx
type = HomeScreenNavigationProp = StackNavigationProp<
RootStackParamList,
"Home"
>;

type Props: {
navigation: HomeScreenNavigationProp
}


const Home = ({navigation}: Props) => {
.
.
.
}

我要复制吗 RootStackParamList一遍又一遍地播放到每个屏幕或创建类似 types.ts 的内容文件并从那里导入?有没有更好的处理方法?我正在使用 navigation几乎在每个组件中。

最佳答案

你可以试试这个:

type RootStackComponent<RouteName extends keyof RootStackParamList> = React.FC<
navigation: StackNavigationProp<RootStackParamList, RouteName>,
route: RouteProp<RootStackParamList, RouteName>
>
const Home: RootStackComponent<'Home'> = ({ navigation, route }) => {}

关于react-navigation v5 中的 Typescript StackNavigatonProps 和 Screen props,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60704310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com