import React, { PureComponent } from 'react';
import { View, Text, StyleSheet, ActivityIndicator } from 'react-native';
import { pTd, viewportWidth, viewportHeight } from '@/utils/index'
class AppLoading extends PureComponent {
state = {
isLoading: false
}
showLoading = () => {
this.setState({
isLoading: true
})
};
dismissLoading = () => {
this.setState({
isLoading: false
})
}
render() {
if (!this.state.isLoading) {
return null;
}
return (
<View style={{
flex: 1,
width: viewportWidth,
height: viewportHeight + 45,
position: 'absolute',
backgroundColor: '#10101099',
}}>
<View style={styles.loading}>
<ActivityIndicator color="white" />
<Text style={styles.loadingTitle}>请稍后...</Text>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
loading: {
backgroundColor: '#10101099',
height: 100,
width: 100,
borderRadius: 10,
justifyContent: 'center',
alignItems: 'center',
position: 'absolute',
top: (viewportHeight - 80) / 2,
left: (viewportWidth - 100) / 2,
},
loadingTitle: {
marginTop: 10,
fontSize: pTd(24),
color: 'white'
}
})
export default AppLoading;
import React, { Component } from 'react'
import Navgator from '@/navigator/index'
import { Provider } from 'react-redux'
import store from '@/config/dva'
import { StatusBar } from 'react-native'
import AppLoading from '@/components/apploading'
import { enableScreens } from 'react-native-screens'
enableScreens()
class index extends Component {
render() {
return (
<Provider store={store}>
<Navgator />
{}
<StatusBar backgroundColor="transparent" barStyle='light-content' translucent />
{
<AppLoading
ref={(ref) => {
global.mLoadingComponentRef = ref;
}} />
}
</Provider>
)
}
}
export default index;
let LoadingUtil = {
showLoading(timeOut = 0) {
global.mLoadingComponentRef && global.mLoadingComponentRef.showLoading();
if (timeOut > 0) {
setTimeout(() => {
this.dismissLoading();
}, timeOut);
}
},
dismissLoading() {
global.mLoadingComponentRef && global.mLoadingComponentRef.dismissLoading();
}
};
export default LoadingUtil;
import LoadingUtil from '@/utils/loadingutil'
LoadingUtil.showLoading()
LoadingUtil.dismissLoading()