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

在后端、react 和 react-native 客户端之间共享 typescript 代码

react native 可以使用typescript开发吗