首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React本机导航TabNavigator

React本机导航TabNavigator
EN

Stack Overflow用户
提问于 2017-10-02 01:25:14
回答 2查看 282关注 0票数 0

我刚开始学习ReactiveNative,并遵循了一堆实现TabNavigator的指南。然而,它在Android仿真程序中没有显示任何内容。我在Windows环境下工作。

文件结构如下所示:

代码语言:javascript
复制
app/
-components/
-config/
--router.js
-Screens/
--Inbox/
---Inbox.js
--Account/
---Account.js
-Overview.js

我试图将所有导航逻辑放入router.js文件中。代码如下所示:

代码语言:javascript
复制
import React, {Component} from 'react';
import {TabNavigator, TabBarBottom} from 'react-navigation';
import {Icon} from 'react-native-elements';

import Login from '../Login/Login';
import Account from '../Screens/Account/Account';
import Inbox from '../Screens/Inbox/Inbox';

export const Tabs = TabNavigator({
    Account: {
        screen: Account,
        navigationOptions: {
            title: 'Account',
        },
    },
    Inbox: {
        screen: Inbox,
        navigationOptions: {
            title: 'Inbox',
        },
    },
},

{
    tabBarComponent: TabBarBottom,
    tabBarPosition: 'bottom',
});

Account.js和Inbox.js都有一些简单的代码来呈现文本:

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



export default class Account extends Component{
    render() {
        return (
          <View>
            <Text>
                This is Account Page.
            </Text>
          </View>
        );

    }
}

index.android.js包含以下内容:

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

import Login from './app/component/Login/Login';
import Overview from './app/component/Overview';

export default class MyApp extends Component {
  render() {
    return (
      <View>
        <Overview />
      </View>
    );
  }
}

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

和Overview.js:

代码语言:javascript
复制
import React, { Component } from 'react';
import {View, Container, Header, Content, Footer, FooterTab, Button, Text, Icon, Fab,} from 'native-base';
import {StyleSheet} from 'react-native';

import {Tabs} from './config/router';
import Login from './Login/Login';

class Overview extends Component{
    render(){
        return <Tabs />
    }
}

export default Overview;

Android仿真器绝对没有显示任何东西。而且没有构建错误。我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2017-10-02 06:47:58

问题似乎是您注册的应用程序的名称与根文件夹不匹配。因此,如果根文件夹是/app,那么您应该在index.android.js - AppRegistry调用中(在屏幕底部)使用这个名称,如下所示:

代码语言:javascript
复制
AppRegistry.registerComponent('app', () => MyApp);

不知道为什么你现在是‘分期’,但这应该可以解决你的问题。

票数 0
EN

Stack Overflow用户

发布于 2017-10-02 09:10:13

由于您不使用export default YourClassName,所以必须使用{ }导入它

代码语言:javascript
复制
import { Account } from '../Screens/Account/Account';
import { Inbox } from '../Screens/Inbox/Inbox';

有关更多细节,您可以阅读this answer

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

https://stackoverflow.com/questions/46518446

复制
相关文章

相似问题

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