reactjs - react 导航 withNavigation 返回未定义

标签 reactjs react-native mobile react-navigation

在我的 react native 应用程序中,我有一个带有后退按钮的标题组件。它有效,除了当我单击后退按钮时,它给我这个错误:undefined is not an object (evaluating this.props.navigation)

所以我按照文档 here 进行操作并尝试使用withNavigation。但我仍然遇到同样的错误。我做错了什么?

import React from 'react'
import { StyleSheet, Text, View, TouchableOpacity } from 'react-native'
import { withNavigation } from 'react-navigation';

const HeaderWithBackBtn = (props) => {
    return (
        <View style={styles.container}>
            {/* Back button */}
            <TouchableOpacity 
                style={{width: 100}} 
                onPress={() => this.props.navigation.goBack()}>
                <Text style={styles.backBtn}>Back</Text>
            </TouchableOpacity>

            <Text style={styles.text}> {props.screen} </Text>

            {/* Placeholder button */}
            <Text style={{width: 100}}></Text>
        </View>
    )
}

const styles = StyleSheet.create({
    ...
});

export default withNavigation(HeaderWithBackBtn);

最佳答案

您要包装的组件是一个功能组件,因此您需要以 props.foo 的形式而不是 this.props.foo 的形式访问您的 props。

onPress={() => props.navigation.goBack()}>

应该可以正常工作。

关于reactjs - react 导航 withNavigation 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54759344/

相关文章:

javascript - 在 React 中迭代 json 属性以形成表?

react-native - 什么可能导致 native react 缓慢?

android - 深层链接参数不会通过 Mozilla Firefox 和 Opera 传递到 Android 应用程序

reactjs - 使用 useMemo() 防止上下文重新渲染

javascript - React 不会使用手动构建的 JavaScript 函数

reactjs - Material ui 实验室自动完成它不工作

ios - React Native Hot Reloading 不适用于 IOS 模拟器

javascript - 当设备宽度小于 1000px 时,jQuery 的 .height() 函数返回 0

audio - 将实时音频数据馈送到移动设备上的 tensorflow

javascript - Uncaught ReferenceError : show value is not defined(Only for mobile device)