屏幕之间的本机导航

Posted

技术标签:

【中文标题】屏幕之间的本机导航【英文标题】:react-native navigation between screens 【发布时间】:2019-02-24 10:01:35 【问题描述】:

我是 react-native 的初学者,我将在我的应用程序中实现 react 堆栈导航。我试图让我的 App.js 将我的 Home.js 呈现为默认屏幕。我希望将 app.js 用作主屏幕并添加另一个登录屏幕,但我不能。我不知道出了什么问题我只得到开发服务器返回的响应错误代码:500。这是 App.js 的代码。

import React from 'react';
import  StyleSheet, Text, View, Button, KeyboardAvoidingView  from 'react-native';
import createStackNavigator, createAppContainer from 'react-navigation'

import Home from './Screens/Home';

const AppNavigator = createStackNavigator(
  Home: screen: Home,
);

export default class App extends React.Component 

  render() 
    return (
      <AppNavigator />
    );
  

这是我的 Home.js 文件。

import React from 'react';
import  StyleSheet, Text, View, Button, KeyboardAvoidingView  from 'react-native';
import StackNavigator, createStackNavigator, createAppContainer from 'react-navigation'


export default class Home extends React.Component 
  static navigationOptions = 
    title: 'Home',
  

  render() 
    const  navigate  = this.props.navigation;
    return (
      <View>
        <Text>This is the Home HomeScreen</Text>
      </View>
    );
  

【问题讨论】:

【参考方案1】:

你忘记创建应用容器了,看看这个链接https://reactnavigation.org/docs/en/hello-react-navigation.html

import React from 'react';
import  StyleSheet, Text, View, Button, KeyboardAvoidingView  from 'react-native';
import createStackNavigator, createAppContainer from 'react-navigation'

import Home from './Screens/Home';

const AppNavigator = createStackNavigator(
  Home: screen: Home,
);

const AppContainer = createAppContainer(AppNavigator);

export default class App extends React.Component 

  render() 
    return (
      <AppContainer />
    );
  

【讨论】:

谢谢。我不知道它是否有效,因为我所知道的是 Unable to resolve "../Screens/Home" from "App.js 这是因为如果 Screens 目录与 App.js 处于同一级别,则它无法在您的目录中找到文件尝试删除第一个点 "../Screens/Home" => "./Screens /首页” 我刚刚修复了它,我再次重新启动了 expo,因为我有时会遇到 dir 问题。导航工作得很好。非常感谢。 我刚刚修复了它,我再次重新启动了 expo,因为我有时会遇到 dir 问题。导航工作得很好。非常感谢。【参考方案2】:

我想,你错过了“createAppContainer”。试试下面的代码。

const AppStackNavigator = createStackNavigator(
  Welcome: 
   screen: WelcomeScreen,
     
 );

const AppNavigator = createAppContainer(AppStackNavigator);

然后在渲染中使用 AppNavigator。

【讨论】:

以上是关于屏幕之间的本机导航的主要内容,如果未能解决你的问题,请参考以下文章

使用抽屉导航在反应本机导航中导航时屏幕冻结

反应本机导航:无法导航到堆栈中的顶部屏幕

无法通过反应本机导航导航到有条件地设置屏幕

屏幕无法在本机反应中导航

如何在本机反应中转到顶部选项卡导航中的另一个屏幕

如何使用 useNavigation() 在与 typescript 的本机反应中导航到屏幕