首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法读取未定义的-反应本机导航的属性“导航”

无法读取未定义的-反应本机导航的属性“导航”
EN

Stack Overflow用户
提问于 2017-09-21 21:01:21
回答 2查看 2.3K关注 0票数 0

我目前正在开发一个应用程序,该应用程序与react本机协同工作,我试图使用react-navigation开发教程,但我在运行项目时遇到了困难,我做了很多研究,我只是无法找到解决方案,首先,我使用的是react原生-cli: 2.0.1和react原生: 0.48.3,这是我的代码:

App.js:

代码语言:javascript
运行
复制
import React, { Component } from 'react';
import { Text, Button, View } from 'react-native';
import {
    StackNavigator,
} from 'react-navigation';

class App extends Component {
    static navigationOptions = {
        title: 'Welcome',
    };

    render() {
        console.log(this.props.navigation);
        const { navigate } = this.props.navigation;
        return (
            <View>
                <Text>Go to maps!</Text>
                <Button
                    onPress={() => navigate('Map')}
                    title="MAP"
                />
            </View>
        );
    }
}

export default App;

我的Router.js

代码语言:javascript
运行
复制
import {
    StackNavigator,
  } from 'react-navigation';

  import MapMarker from './MapMarker';
  import App from './App';

  export const UserStack = StackNavigator({
    ScreenMap: 
    {
        screen: MapMarker,
        navigationOptions:
        {
            title: "Map",
            header:null
        },
    },
    ScreenHome: 
    {
        screen: App,
        navigationOptions:
        {
            title: "Home",
            headerLeft:null
        },
    },
});

正如您可以看到的,这是一个非常基本的应用程序,我只是无法工作,这是一个屏幕截图,我的错误在模拟器:

如果你们能帮我做这件事,我会非常感激的。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-09-22 08:37:27

您应该将代码onPress={() => navigate('Map')}更改为onPress={() => navigate('ScreenMap')}ScreenHome应该是第一个屏幕,然后是ScreenMap,因为您希望从App导航到MapMarker。也可以在堆栈导航器中设置initialRouteName: ScreenHome

票数 2
EN

Stack Overflow用户

发布于 2017-09-23 20:04:33

您创建了您的StackNavigator,但是在哪里使用它呢?你应该有这样的

代码语言:javascript
运行
复制
import React, { Component } from 'react';
import {
    AppRegistry,
    View
} from 'react-native';

    import {
        StackNavigator,
      } from 'react-navigation';

    export default class MyApp extends Component {
      render() {
        return (
          <View style={{flex:1}}>
            <StackNavigator/>
          </View>
        );
      }
    }

    AppRegistry.registerComponent('MyApp', () => MyApp);

现在您的StackNavigator正在控制显示的内容,您的App将在其支持程序中进行导航。注意,您不能“传递”导航支柱。这是给你处理的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46353089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档