Ответ 1
Навигатор - это компонент, который я использую для решения этой проблемы.
1. Определите свой первоначальный маршрут и общие свойства в методе рендеринга:
class MyApp extends React.Component {
render () {
return (
<Navigator
initialRoute={{id: 'SplashPage', name: 'Index'}}
renderScene={this.renderScene.bind(this)}
configureScene={(route) => {
if (route.sceneConfig) {
return route.sceneConfig;
}
return Navigator.SceneConfigs.VerticalDownSwipeJump;
}}/>
);
}
}
2. И тогда вам нужно определить другие сайты/представления/страницы, в которые вы хотите пойти, в методе renderScene:
renderScene ( route, navigator ) {
var routeId = route.id;
if (routeId === 'SplashPage') {
return (
<SplashPage
navigator={navigator}/>
);
}
if (routeId === 'LoginPage') {
return (
<LoginPage
navigator={navigator}/>
);
}
}
}
3. В Splash Class вы видите, как вы переходите на следующую страницу, как только в этом примере 2 секунды закончились следующим кодом: (я думаю, было бы лучше, если бы что-то вроде replaceWith, а не просто заменить, но неважно: P )
class SplashPage extends Component {
componentWillMount () {
var navigator = this.props.navigator;
setTimeout (() => {
navigator.replace({
id: 'LoginPage',
});
}, 2000);
}
render () {
return (
<View style={{flex: 1, backgroundColor: 'red', alignItems: 'center', justifyContent: 'center'}}>
<Image style={{position: 'absolute', left: 0, top: 0, width: windowSize.width, height: windowSize.height}} source={require('image!splash_screen')}></Image>
</View>
);
}
}
module.exports = SplashPage;