Я использую «Навигатор» и рендеринг нескольких компонентов по маршруту. Я хочу показать загрузчик (например, любое изображение или текст «Загрузка ...») перед рендерингом на компонент, потому что они требуют времени для загрузки. Просмотрите мой код и предложите мне, где я должен использовать загрузчик. Route.jsВремя загрузки
import React from 'react';
import {
Platform,
StyleSheet,
Text,
View,
Image,
ListView,
TouchableHighlight,
Navigator,
TouchableOpacity, InteractionManager
} from 'react-native';
import Home from './Home';
import Tomo from './App';
import Profile from './Profile';
var SCREEN_WIDTH = require('Dimensions').get('window').width;
var BaseConfig = Navigator.SceneConfigs.FloatFromRight;
var CustomLeftToRightGesture = Object.assign({}, BaseConfig.gestures.pop, {
snapVelocity: 10,
edgeHitWidth: SCREEN_WIDTH,
});
var CustomSceneConfig = Object.assign({}, BaseConfig, {
springTension: 300,
springFriction: 10,
gestures: {
pop: CustomLeftToRightGesture,
}
});
export default class Route extends React.Component {
constructor(props, context) {
super(props, context);
this.state = {renderPlaceholderOnly: true};
}
componentDidMount() {
InteractionManager.runAfterInteractions(() => {
this.setState({renderPlaceholderOnly: false});
});
}
_configureScene(route) {
return CustomSceneConfig;
}
render() {
if (this.state.renderPlaceholderOnly) {
return this._renderPlaceholderView();
}
return (
<Navigator
initialRoute={{id: 'Home'}}
configureScene={this._configureScene}
renderScene={this.navigatorRenderScene}
/>
);
}
_renderPlaceholderView() {
return (
<View>
<Text>Loading...</Text>
</View>
);
}
header() {
return (
<View>
<Text>Loading...</Text>
</View>
);
}
navigatorRenderScene(route, navigator) {
_navigator = navigator;
switch (route.id) {
case 'Home':
return (<Home navigator={navigator} title="Home"/>);
case 'Tomo':
return (<Tomo navigator={navigator} title="Tomo"/>);
case 'Profile':
return (<Profile navigator={navigator} title="Profile" />);
}
}
}
Спасибо заранее.
Выполняете ли вы какие-либо сетевые операции перед загрузкой компонента? – Jickson
Нет, просто рендеринг компонента. Один из компонентов, включая больше файлов, чтобы время загрузки. –
ОК. В коде, который вы опубликовали, нет никаких проблем. Можете ли вы опубликовать код компонентов, который вызывает задержку при переходе от источника к целевому компоненту. – Jickson