Javascript 是否有一种方法可以导航到与我的父组件中内置的菜单不同的屏幕?
我正在尝试向我的react原生应用程序添加一个简单的自定义导航菜单,但我现在遇到的问题是,我似乎找不到一种方法来导航到与屏幕对应的所选菜单项。我尝试了正常的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);
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
感谢您的回复,但在我的用例中,解决方案实际上是将侧菜单
组件包装器移动到使用它们的各个屏幕。通过这种方式,我可以像以前一样访问导航器
,但我也可以将侧菜单
限制为仅在我的应用程序需要的屏幕上使用。在这种情况下,我只是创建了一个自定义组件,这样我就可以在我希望有侧菜单的屏幕上保持样式和功能的一致性,然后只需将每个组件导入到我需要的屏幕上,并填写某些方面的道具。感谢您的回复,但在我的用例中,解决方案实际上是将侧菜单
组件包装器移动到使用它们的各个屏幕。通过这种方式,我可以像以前一样访问导航器
,但我也可以将侧菜单
限制为仅在我的应用程序需要的屏幕上使用。在这种情况下,我只是创建了一个自定义组件,这样我就可以在我希望有侧菜单的屏幕上保持样式和功能的一致性,然后只需将每个组件导入到我需要的屏幕上,并填写某些方面的道具。