2017-03-17 127 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