Badam możliwości React Native podczas tworzenia aplikacji demonstracyjnej z niestandardową nawigacją między widokami za pomocą Navigator
komponentu .
Główna klasa aplikacji renderuje nawigatora, a wewnątrz renderScene
zwraca przekazany komponent:
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 });
}
}}
/>
);
}
}
Na razie aplikacja zawiera dwa widoki:
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>
);
}
}
Chcę dowiedzieć się:
Widzę w dziennikach, że po naciśnięciu przycisku „przejdź do kanału”
renderScene
jest wywoływane kilka razy, chociaż widok renderuje się poprawnie raz. Czy tak działa animacja?index.ios.js:57 Object {name: 'WelcomeView', component: function} index.ios.js:57 Object {name: 'FeedView', component: function} // renders Feed View
Ogólnie rzecz biorąc, czy moje podejście jest zgodne ze sposobem Reacta, czy można to zrobić lepiej?
Chcę osiągnąć coś podobnego, NavigatorIOS
ale bez paska nawigacji (jednak niektóre widoki będą miały własny niestandardowy pasek nawigacji).