【问题标题】: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>
    );
  }
}

【问题讨论】:

    标签: javascript reactjs react-native


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多