J'explore les possibilités de React Native tout en développant une application de démonstration avec une navigation personnalisée entre les vues à l'aide d'un Navigator
composant .
La classe d'application principale rend le navigateur et l'intérieur renderScene
retourne le composant passé:
class App extends React.Component {
render() {
return (
<Navigator
initialRoute={{name: 'WelcomeView', component: WelcomeView}}
configureScene={() => {
return Navigator.SceneConfigs.FloatFromRight;
}}
renderScene={(route, navigator) => {
// count the number of func calls
console.log(route, navigator);
if (route.component) {
return React.createElement(route.component, { navigator });
}
}}
/>
);
}
}
Pour l'instant, l'application contient deux vues:
class FeedView extends React.Component {
render() {
return (
<View style={styles.container}>
<Text>
Feed View!
</Text>
</View>
);
}
}
class WelcomeView extends React.Component {
onPressFeed() {
this.props.navigator.push({
name: 'FeedView',
component: FeedView
});
}
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome View!
</Text>
<Text onPress={this.onPressFeed.bind(this)}>
Go to feed!
</Text>
</View>
);
}
}
Ce que je veux comprendre, c'est:
Je vois dans les journaux que lorsque vous appuyez sur "aller à l'alimentation"
renderScene
est appelé plusieurs fois bien que la vue s'affiche correctement une fois. Est-ce ainsi que fonctionne l'animation?index.ios.js:57 Object {name: 'WelcomeView', component: function} index.ios.js:57 Object {name: 'FeedView', component: function} // renders Feed View
En général, mon approche est-elle conforme à la méthode React, ou peut-elle être améliorée?
Ce que je veux réaliser, c'est quelque chose de similaire NavigatorIOS
mais sans la barre de navigation (cependant, certaines vues auront leur propre barre de navigation personnalisée).