react-native - 如何从导入的子组件(导航组件)在应用程序中使用导航?
问题描述
我正在尝试在应用程序屏幕上使用导航,其中导航在应用程序屏幕中导入。但它显示错误。无法读取属性导航未定义。
应用程序.js
import React from 'react';
import { ActivityIndicator, StyleSheet, Text, View } from 'react-native';
import Navigation from './App/Components/Navigation';
import OneSignal from 'react-native-onesignal';
export default class App extends React.Component {
constructor(props){
super(props);
.........
}
..........
onOpened(openResult) {
const { navigate } = this.props.navigation;
navigate('Screen2');
}
render() {
return (
<Navigation/>
);
}
}
Navigation.js - 这是在 App.js 中导入的导航组件,但它显示错误 - 无法读取未定义的属性“导航”我该如何解决这个问题。
谢谢提前........
解决方案
我是否了解您正在尝试将一个屏幕导航到另一个屏幕。
您可以尝试使用( react-native-navigation-stack ) https://facebook.github.io/react-native/docs/navigation
npm install --save react-navigation-stack
创建 Navigation.js
import { createStackNavigator,createAppContainer } from 'react-navigation'
import Login from './Login'
import SignUp from './SignUp'
var AppNavigator = createStackNavigator({
Login: {
screen: Login,
navigationOptions: {
header: null
}
},
SignUp: {
screen: SignUp,
navigationOptions: {
header: null
}
},
},
{
initialRouteName: 'Login',
})
export default NavigateStack = createAppContainer(AppNavigator);
在 App.js 中
import React, {Component} from 'react';
import Navigation from './Navigation'
export default class App extends Component {
render()
{
return ( <Navigation /> );
}
}
在 login.js 中
signup = () =>
{
this.props.navigation.navigate('SignUp')
}
推荐阅读
- java - 如何理解 shedlock 何时被获取和释放?
- java - 即使布尔值变为假,我的while循环也没有完成我该如何解决?
- java - 仅仅声明对象数组和实际创建它的实例有什么区别?
- django - 如何将 timezone.today 作为默认值?
- python - 当方法基本完成时,AsyncIO 任务不会结束
- python - “Ui_Form”对象没有属性“COLUMN_5”
- php - PHP PDO 如何在查询中搜索 2 个或多个值?
- java - 如果excel工作表连续有数据,则获取行数
- visual-studio-code - 有没有我可以修改的配置,这样我就不必先 ⌃Space 来触发 IntelliSense 以在 vscode 中进行“markdown”
- java - Cucumber-为什么我的步骤定义没有被识别