0

我有一个通过 React Navigation 2 的 openDrawer 方法,在我的视图中运行良好。但是,当我创建一个子组件并将我的 openDrawer 按钮放入其中时,我无法再访问 this.props.navigation。如何将其传递给子组件?我查看了状态,但这似乎不是解决此问题的正确方法?我是 React/Native 的新手。这是我在主视图中的按钮,它可以正常工作。

<View style={styles.menuBar}> 
<TouchableOpacity style={styles.menuButton} 
 onPress={() => this.props.navigation.openDrawer()}>
<Text>&#9776;</Text>
</TouchableOpacity>
// Other Stuff inside menuBar.
</View>

这个菜单按钮还有一些其他的项目,我想作为一个孩子在一个类组件中组合在一起,我可以将它导入到各种屏幕中。

import { topMenuBar } from '../components/menuBar';
<topMenuBar />

但是,菜单按钮现在不再起作用。我知道这是因为 this.props 现在指的是类 topMenuBar 而不是作为导航结构一部分的原始类。但是我不知道这一步的正确过程,无论是使用状态还是以某种方式从子方法中的 react-navigation 调用 NavigationActions。

谢谢您的帮助!

4

1 回答 1

3

使用 react-navigation 打开的每个组件都有“this.props.navigation”。

如果您在子组件中需要它,则应将其作为道具传递给它们:

export default class Home extends Component{
    render(){
        <View>
            <OtherComponent navigation = {this.props.navigation}/>
        </View>
    }
}

注意:如果您想要更好的帮助,您应该始终提供创建小提琴的代码并更好地组织您的答案..

于 2018-06-27T15:18:50.367 回答