mirror of
https://github.com/fergalmoran/argon-react-native.git
synced 2026-01-07 00:56:25 +00:00
first render fixed
This commit is contained in:
46
App.js
46
App.js
@@ -1,11 +1,16 @@
|
||||
import React from 'react';
|
||||
import { Image } from 'react-native';
|
||||
import { AppLoading } from 'expo';
|
||||
import { Asset } from 'expo-asset';
|
||||
import { Block, GalioProvider } from 'galio-framework';
|
||||
import React from "react";
|
||||
import { Image } from "react-native";
|
||||
import { AppLoading } from "expo";
|
||||
import { Asset } from "expo-asset";
|
||||
import { Block, GalioProvider } from "galio-framework";
|
||||
import { NavigationContainer } from "@react-navigation/native";
|
||||
|
||||
import Screens from './navigation/Screens';
|
||||
import { Images, articles, argonTheme } from './constants';
|
||||
// Before rendering any navigation stack
|
||||
import { enableScreens } from "react-native-screens";
|
||||
enableScreens();
|
||||
|
||||
import Screens from "./navigation/Screens";
|
||||
import { Images, articles, argonTheme } from "./constants";
|
||||
|
||||
// cache app images
|
||||
const assetImages = [
|
||||
@@ -23,7 +28,7 @@ articles.map(article => assetImages.push(article.image));
|
||||
|
||||
function cacheImages(images) {
|
||||
return images.map(image => {
|
||||
if (typeof image === 'string') {
|
||||
if (typeof image === "string") {
|
||||
return Image.prefetch(image);
|
||||
} else {
|
||||
return Asset.fromModule(image).downloadAsync();
|
||||
@@ -33,11 +38,11 @@ function cacheImages(images) {
|
||||
|
||||
export default class App extends React.Component {
|
||||
state = {
|
||||
isLoadingComplete: false,
|
||||
}
|
||||
|
||||
isLoadingComplete: false
|
||||
};
|
||||
|
||||
render() {
|
||||
if(!this.state.isLoadingComplete) {
|
||||
if (!this.state.isLoadingComplete) {
|
||||
return (
|
||||
<AppLoading
|
||||
startAsync={this._loadResourcesAsync}
|
||||
@@ -47,19 +52,19 @@ export default class App extends React.Component {
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<GalioProvider theme={argonTheme}>
|
||||
<Block flex>
|
||||
<Screens />
|
||||
</Block>
|
||||
</GalioProvider>
|
||||
<NavigationContainer>
|
||||
<GalioProvider theme={argonTheme}>
|
||||
<Block flex>
|
||||
<Screens />
|
||||
</Block>
|
||||
</GalioProvider>
|
||||
</NavigationContainer>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
_loadResourcesAsync = async () => {
|
||||
return Promise.all([
|
||||
...cacheImages(assetImages),
|
||||
]);
|
||||
return Promise.all([...cacheImages(assetImages)]);
|
||||
};
|
||||
|
||||
_handleLoadingError = error => {
|
||||
@@ -71,5 +76,4 @@ export default class App extends React.Component {
|
||||
_handleFinishLoading = () => {
|
||||
this.setState({ isLoadingComplete: true });
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user