Typescript React Native navigation.push 输入错误
Posted
技术标签:
【中文标题】Typescript React Native navigation.push 输入错误【英文标题】:Typescript React Native navigation.push incorrect typing 【发布时间】:2021-11-02 05:40:27 【问题描述】:在我的 react native 应用中,我使用的是@react-navigation/native-stack。
以下行给出错误:
navigation.push('ScreenName', myParam);
错误是:
TS2345: Argument of type '[string, myParam: string; ]' is not assignable to parameter of type '[any, string | number | symbol] | [any, string | number | symbol, any, any]'
此代码确实有效,并且是文档指定的方式。我应该怎么做才能让 typescript 认为它是正确的?
编辑:我的代码
export default function Home(navigation: NativeStackScreenProps<any>)
return (
<View style=styles.container>
<Button onPress=() => navigation.push('ScreenName', myParam: 'stuff') title='Go to ScreenName'/>
</View>
);
【问题讨论】:
是否提供了类型导航成本?或者你是如何获得这个导航的,你可以分享代码吗? @Xhirazi 添加了代码 指定正确的类型而不是any
【参考方案1】:
使用下面的代码。
export default function Home(navigation : navigation: StackNavigationProp<any, any>)
return (
<View style=styles.container>
<Button onPress=() => navigation.push('ScreenName', myParam: 'stuff') title='Go to ScreenName'/>
</View>
);
【讨论】:
以上是关于Typescript React Native navigation.push 输入错误的主要内容,如果未能解决你的问题,请参考以下文章
React-native:如何在 React-native 中使用(和翻译)带有 jsx 的 typescript .tsx 文件?
[React Native] Up & Running with React Native & TypeScript
React-native:从 javascript 迁移到 typescript
已有的react-native 项目配置TypeScript