2017-04-15 4 views
1

Ich habe ziemlich kopiert und den Demo-Code von Facebook eingefügt, aber die InitialRoute-Komponente wird nicht gerendert. Antworten wie das Setzen von flex: 1 wie von ähnlichen Fragen vorgeschlagen, funktionierte nicht für mich. Irgendwelche Tipps?NavigatorIOS rendern nicht initialroute

doesn't work

import React, { Component } from 'react'; 
 
import { 
 
    StyleSheet, 
 
    NavigatorIOS, 
 
    StatusBar, 
 
    AppRegistry, 
 
    View, 
 
    Text, 
 
    TouchableHighlight, 
 
} from 'react-native'; 
 
import NativeThing from './components/ReactNative'; 
 

 
export default class ListsList extends Component { 
 
    render() { 
 
    return (
 
     <NavigatorIOS 
 
     initialRoute={{ 
 
      component: MyScene, 
 
      title: 'My Initial Scene', 
 
     }} 
 
     style={{flex: 1}} 
 
     /> 
 
    ); 
 
    } 
 
} 
 

 
class MyScene extends Component { 
 

 
    _onForward =() => { 
 
    this.props.navigator.push({ 
 
     title: 'Scene ' + nextIndex, 
 
    }); 
 
    } 
 

 
    render() { 
 
    return (
 
     <View> 
 
     <Text>Current Scene: { this.props.title }</Text> 
 
     <TouchableHighlight onPress={this._onForward}> 
 
      <Text>Tap me to load the next scene</Text> 
 
     </TouchableHighlight> 
 
     </View> 
 
    ) 
 
    } 
 
} 
 

 
var styles = StyleSheet.create({ 
 
    container: { 
 
    flex: 1, 
 
    backgroundColor: '#F5FCFF', 
 
    } 
 
}); 
 

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

+0

Ich weiß, Sie sagen, Sie hinzugefügt 'flex: 1 'aber in diesem Code-Schnipsel Sie nie den' container' Stil zu jeder Ansicht tatsächlich anzuwenden. Hast du es versucht? –

+0

Ja, das ist der Code, der aus der reaktionsbereiten Dokumentation kopiert und eingefügt wird. Ich habe mit dem Hinzufügen von 'flex: 1' zu fast jeder Komponente gespielt, ohne Glück. – zliz

Antwort

1

Die Navigationsleiste standardmäßig überlappt den Inhalt der MyScene Komponente. Dies ist das Standardverhalten des NavigatorIOS mit einer transluzenten Navigationsleiste.

So haben Sie zwei Möglichkeiten:

  1. Add Stil paddingTop: 64 auf die Ansicht von MyScene.
  2. Eigenschaft hinzufügen translucent={ false } zum NavigatorIOS