Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一种方法可以导航到与我的父组件中内置的菜单不同的屏幕?_Javascript_Ios_Reactjs_React Native_React Navigation - Fatal编程技术网

Javascript 是否有一种方法可以导航到与我的父组件中内置的菜单不同的屏幕?

Javascript 是否有一种方法可以导航到与我的父组件中内置的菜单不同的屏幕?,javascript,ios,reactjs,react-native,react-navigation,Javascript,Ios,Reactjs,React Native,React Navigation,我正在尝试向我的react原生应用程序添加一个简单的自定义导航菜单,但我现在遇到的问题是,我似乎找不到一种方法来导航到与屏幕对应的所选菜单项。我尝试了正常的this.props.navigation.navigate('Home'),但似乎没有导航道具,这是有意义的,因为在我的应用程序中,我假设导航道具是通过使用从我的app.js传递到屏幕的,你必须实现构造函数 class App extends Component { constructor(props) { super(props);

我正在尝试向我的react原生应用程序添加一个简单的自定义导航菜单,但我现在遇到的问题是,我似乎找不到一种方法来导航到与屏幕对应的所选菜单项。我尝试了正常的
this.props.navigation.navigate('Home')
,但似乎没有导航道具,这是有意义的,因为在我的应用程序中,我假设导航道具是通过使用

从我的
app.js
传递到屏幕的,你必须实现构造函数

class App extends Component {
constructor(props) {
  super(props);
  } 
} 

如果您使用抽屉,请将其作为单独的组件使用

import React, { Component } from 'react';
import {
  View,
  Text,
  TouchableOpacity
} from 'react-native';

class SideDrawer extends Component{
constructor(props) {
  super(props);
  } 
render(){
   return(
<View style={{
      backgroundColor: '#f0f0f0', 
      alignContent: 'center', 
      textAlign: 'center', height: '100%', width: '100%', paddingTop: '40%'}}>
      <Text style={styles.menuTitle}>{'S K I P\nD R I V E R\nL O G'}</Text>
      <TouchableOpacity onPress={() => {this.props.navigation.navigate('Home')}}>
        <Text style={styles.menuItem}>HOME</Text>
      </TouchableOpacity>
      <TouchableOpacity onPress={() => {MainNavigator.navigate('DriverLog')}}>
        <Text style={styles.menuItem}>DRIVING LOG</Text>
      </TouchableOpacity>
    </View>
)
}
}

export default sideDrawer

您必须实现构造函数

class App extends Component {
constructor(props) {
  super(props);
  } 
} 

如果您使用抽屉,请将其作为单独的组件使用

import React, { Component } from 'react';
import {
  View,
  Text,
  TouchableOpacity
} from 'react-native';

class SideDrawer extends Component{
constructor(props) {
  super(props);
  } 
render(){
   return(
<View style={{
      backgroundColor: '#f0f0f0', 
      alignContent: 'center', 
      textAlign: 'center', height: '100%', width: '100%', paddingTop: '40%'}}>
      <Text style={styles.menuTitle}>{'S K I P\nD R I V E R\nL O G'}</Text>
      <TouchableOpacity onPress={() => {this.props.navigation.navigate('Home')}}>
        <Text style={styles.menuItem}>HOME</Text>
      </TouchableOpacity>
      <TouchableOpacity onPress={() => {MainNavigator.navigate('DriverLog')}}>
        <Text style={styles.menuItem}>DRIVING LOG</Text>
      </TouchableOpacity>
    </View>
)
}
}

export default sideDrawer

感谢您的回复,但在我的用例中,解决方案实际上是将
侧菜单
组件包装器移动到使用它们的各个屏幕。通过这种方式,我可以像以前一样访问
导航器
,但我也可以将
侧菜单
限制为仅在我的应用程序需要的屏幕上使用。在这种情况下,我只是创建了一个自定义组件,这样我就可以在我希望有
侧菜单的屏幕上保持样式和功能的一致性,然后只需将每个组件导入到我需要的屏幕上,并填写某些方面的道具。感谢您的回复,但在我的用例中,解决方案实际上是将
侧菜单
组件包装器移动到使用它们的各个屏幕。通过这种方式,我可以像以前一样访问
导航器
,但我也可以将
侧菜单
限制为仅在我的应用程序需要的屏幕上使用。在这种情况下,我只是创建了一个自定义组件,这样我就可以在我希望有
侧菜单的屏幕上保持样式和功能的一致性,然后只需将每个组件导入到我需要的屏幕上,并填写某些方面的道具。