2017-03-17 81 views
1

导航器不工作,它是空的。我收到一个空白页面,Home组件没有显示出来。我尝试了其他组件并得到了相同的结果。React Native的导航器不起作用

加入此项,我可以发布问题 Lorem Ipsum自从16世纪以来一直是业界标准的虚拟文本,当时一台未知的打印机采用了一种类型的厨房,并将其制作成样本书。它不仅存活了五个世纪,而且还实现了电子排版的飞跃,基本保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset工作表的发布以及最近使用包括版本的Lorem Ipsum在内的Aldus PageMaker等桌面出版软件而得到了推广。

import React, { Component } from 'react'; 

      import { 
    AppRegistry, 
     View, 
     Text, 
    StyleSheet, 
    Navigator 
    } from 'react-native'; 
    import Login from './components/Login'; 
    import Home from './components/Home'; 
    import LoginForm from './components/LoginForm'; 

    export default class App extends Component { 

    renderScene(route, navigator) { 
    console.log(route); 
    if(route.name == 'login') { 
    return <Login navigator={navigator} /> 
    } 
    if(route.name == 'home') { 
    return <Home navigator={navigator} /> 
    } 

} 
    render() { 
    return (
    <View style={styles.container}> 
    <Navigator 
     initialRoute={{name: 'home'}} 
     renderScene={this.renderScene.bind(this)} 
    /> 
    </View> 
    ); 
    } 
    } 
    const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    justifyContent: 'center', 
    alignItems: 'center', 
    backgroundColor: '#4fb0c9', 
    } 
    }); 

回答

1

我还没有测试过你的代码,但我可以看到你没有以正确的方式使用renderScene()。我的建议是将您的路线出App.js文件并创建一个routes.js以这种方式,这样你就避免了有很多的,如果你的路线:

Route.js

import LoginView from './LoginView'; 
import HomeView from './HomeView'; 

let routes = { 
    HomeView: { 
    name: 'HomeView', 
    component: HomeView, 
    index: 0 
    }, 
    LoginView: { 
    name: 'LoginView', 
    component: LoginView, 
    index: 1, 
    sceneConfig: Navigator.SceneConfigs.PushFromRight //you can change your view transitions here 
    }, 
}; 

export default Routes; 

而在你的app.js文件,你必须

import Routes from './routes'; 

和更新渲染()

render(){ 
    <Navigator 
     initialRoute={Routes.HomeView} 
     sceneStyle={styles.container} 
     renderScene={(route, navigator) => { 
     const Component = route.component; 
     return <Component 
      navigator={navigator} //pass it down to each view so it can be called 
      route={route} 
     /> 
     }} 
     configureScene={(route) => { 
     if (route.sceneConfig) { 
      return route.sceneConfig; 
     } 
     return Navigator.SceneConfigs.FadeAndroid; 
     }} 
    /> 
} 

希望它可以帮助哟你出去。对于导航

import SplashScreen from './SplashScreen'; 
class AppContainer extends Component { 

    render() { 
     return (
      <Navigator 
      initialRoute={{ id: 'SplashScreen', name: 'Index' }} 
      renderScene={this.renderScene.bind(this)} 
      configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromRight} 
      /> 
     ); 
     } 

    renderScene = (route, navigator) => { 
     if (route.id === 'SplashScreen') { 
      return (
      <SplashScreen 
       navigator={navigator} 
      /> 
     ); 
     } 
     } 
} 

我们得到航海家在当我们路过Navigator在闪屏组件道具

0

示例代码。

+0

谢谢你们JainZz和Mattoyao – JRoot