【问题标题】:undefined is not an object (evaluating 'navigation.navigate') when function is passed as an onPress prop当函数作为 onPress 属性传递时,未定义不是对象(评估“navigation.navigate”)
【发布时间】:2021-09-17 19:24:52
【问题描述】:

我正在尝试将一个函数 onPress 道具传递给我的自定义组件,该组件应该导航到下一个屏幕。 这是函数

const clickedItem = (data) => {
        navigation.navigate('articledetail', { data: data })
    }

这是我的组件,我正在传递这样的道具

  <CardCus
                    title={item.title}
                    user={item.author_name}
                    itemimage={item.image}
                    onPressed={() => clickedItem(item)}
                />

并在我的组件中使用 onpressed。 &lt;TouchableWithoutFeedback onPress={() =&gt; onPressed} 像这样 如果调用它,它在主屏幕上可以正常工作,但如果作为道具传递,它会给出错误 undefined is not an object (evaluating 'navigation.navigate')。我该如何处理?

【问题讨论】:

  • 提供更详细的代码

标签: react-native react-native-navigation


【解决方案1】:

你应该使用 props 原型,并执行 props 所带来的功能。

<TouchableWithoutFeedback onPress={() => props.onPressed()}>
...
</TouchableWithoutFeedback>

【讨论】:

    【解决方案2】:

    如果我的问题没问题,我认为你应该像这样使用钩子

    import { useNavigation } from '@react-navigation/native';
    ------
    
    const navigation = useNavigation();
    ------
    

    【讨论】:

    • 我已编辑问题,请立即查看
    猜你喜欢
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多