React NativeプロジェクトでAndroid携帯の空白の白い画面を削除するにはどうすればよいですか?

Boidurja talukdar

私はreact-nativeに不慣れです。

私は、USBポートでラップトップに接続されたAndroidフォンとreact-nativeでプロジェクトを作成しています。プロジェクトを実行すると、電話に空白の画面が表示されます。私の電話はAndroidバージョン9です。

最初に走ったnpm start後、走ったnpm run android

adb -s device-name reverse tcp:8081 tcp:8081を実行しました。それでも私の電話の画面は空白です。

これは私のApp.tsxファイルです:

import "./i18n"
import React, { useState, useEffect, useRef } from "react"
import { YellowBox } from "react-native"
import { NavigationContainerRef } from "@react-navigation/native";
import { contains } from "ramda"
import { enableScreens } from "react-native-screens"
import { SafeAreaProvider, initialWindowSafeAreaInsets } from "react-native-safe-area-context";

import { RootNavigator, exitRoutes, setRootNavigation } from "./navigation" 
import { useBackButtonHandler } from "./navigation/use-back-button-handler"
import { RootStore, RootStoreProvider, setupRootStore } from "./models/root-store"
import * as storage from "./utils/storage"
import getActiveRouteName from "./navigation/get-active-routename"
import { ThemeProvider } from 'react-native-elements';
import * as theme from 'theme';
import { AuthScreensWelcomeScreen } from './screens/auth-screens/welcome-screen';

enableScreens()

YellowBox.ignoreWarnings([
"componentWillMount is deprecated",
"componentWillReceiveProps is deprecated",
"Require cycle:",
])

const canExit = (routeName: string) => contains(routeName, exitRoutes)

export const NAVIGATION_PERSISTENCE_KEY = "NAVIGATION_STATE"

const App: React.FunctionComponent<{}> = () => {
const navigationRef = useRef<NavigationContainerRef>()
const [rootStore, setRootStore] = useState<RootStore | undefined>(undefined)
const [initialNavigationState, setInitialNavigationState] = useState()
const [isRestoringNavigationState, setIsRestoringNavigationState] = useState(true)

setRootNavigation(navigationRef)
useBackButtonHandler(navigationRef, canExit)

    const routeNameRef = useRef()
    const onNavigationStateChange = state => {
    const previousRouteName = routeNameRef.current
    const currentRouteName = getActiveRouteName(state)

    if (previousRouteName !== currentRouteName) {
        // track screens.
        __DEV__ && console.tron.log(currentRouteName)
    }

    // Save the current route name for later comparision
    routeNameRef.current = currentRouteName

    // Clear the storage if we are navigating to auth stack
    if ( ['register', 'login', 'forgotpassword'].includes(currentRouteName) ) {
        storage.remove(NAVIGATION_PERSISTENCE_KEY);
    } else {
        // Persist navigation state to storage
        storage.save(NAVIGATION_PERSISTENCE_KEY, state)
    }
}

useEffect(() => {
    (async () => {
        setupRootStore().then(setRootStore)
    })()
}, [])

useEffect(() => {
    const restoreState = async () => {
        try {
            const state = await storage.load(NAVIGATION_PERSISTENCE_KEY)

            if (state) {
                setInitialNavigationState(state)
            }
        } finally {
            setIsRestoringNavigationState(false)
        }
    }

    if (isRestoringNavigationState) {
        restoreState()
    }
}, [isRestoringNavigationState])

if (!rootStore) {
    return null
}

return (
    <SafeAreaProvider initialSafeAreaInsets={initialWindowSafeAreaInsets}>
        <AuthScreensWelcomeScreen />
    </SafeAreaProvider>
)
}

export default App

表示されるウェルカム画面は次のとおりです。

import React, { FunctionComponent, useState } from "react"
import { observer } from "mobx-react-lite"
import { Dimensions, Image } from "react-native"
import { Screen, Button } from "components"
import Carousel, { Pagination } from 'react-native-snap-carousel';
import { Block } from "components/block/block"
const { width: ScreenWidth } = Dimensions.get('screen');
import { NavigationProp, NavigationState } from "@react-navigation/native";

export interface AuthScreensWelcomeScreenProps {
navigation?: NavigationProp<Record<string, object>, string, NavigationState, 
{}, {}>
}

export const AuthScreensWelcomeScreen: 
FunctionComponent<AuthScreensWelcomeScreenProps> = observer((props) => {

const {
    navigation
} = props;
const [activeSlide, setActiveSlide ] = useState(0);

const items = [
    { image: require('../../../assets/splash1.jpg') },
    { image: require('../../../assets/splash2.jpg') },
    { image: require('../../../assets/splash3.jpg') }
];

function renderItem ( { item, index } ) {
    return (
        <Image style={{ alignSelf: 'center', flex: 1, resizeMode: 'contain', width: ScreenWidth / 1.25 }} source={item.image}></Image>
    )
}

return (
    <Screen preset="fixed">
        <Block flex>
            <Carousel
                sliderWidth={ScreenWidth}
                itemWidth={ScreenWidth}
                data={ items }
                layout="default"
                renderItem={ renderItem }
                onSnapToItem={ index => { setActiveSlide( index ) } }/>
            <Block>
                <Pagination 
                    activeDotIndex={activeSlide}
                    dotsLength={items.length} 
                    dotStyle={{
                        width: 10,
                        height: 10
                    }}/>
            </Block>
        </Block>
        <Block row my={20} space="evenly" px={20}>
            <Button title="Continue" containerStyle={{ flex: 1 }} onPress={ ( ) => navigation.navigate('login') }/>
        </Block>
    </Screen>
)
})

誰か助けてもらえますか?

Boidurja talukdar

私はこれを交換しました:

<RootStoreProvider value={rootStore}>
        <SafeAreaProvider initialSafeAreaInsets={initialWindowSafeAreaInsets}>
            <ThemeProvider theme={theme}>
                <RootNavigator
                    ref={navigationRef}
                    initialState={initialNavigationState}
                    onStateChange={onNavigationStateChange}
                />
            </ThemeProvider>
        </SafeAreaProvider>
    </RootStoreProvider>

<SafeAreaProvider initialSafeAreaInsets={initialWindowSafeAreaInsets}>
        <AuthScreensWelcomeScreen />
    </SafeAreaProvider>

空白の白い画面が消えるようにします。これが正しい方法かどうか教えてください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

React Nativeで画面のロック解除を検出するにはどうすればよいですか?

分類Dev

オブジェクトを含む配列をreact-nativeの次の画面に送信するにはどうすればよいですか?

分類Dev

React Typescriptのプロジェクト全体から未使用のインポート/宣言を削除するにはどうすればよいですか?

分類Dev

React Nativeを使用してオブジェクトのプロパティにアクセスするにはどうすればよいですか?

分類Dev

既存のreact-nativeプロジェクトからAndroidManifest.xmlを生成するにはどうすればよいですか?

分類Dev

既存のreact-nativeプロジェクトからAndroidManifest.xmlを生成するにはどうすればよいですか?

分類Dev

React-Nativeプロジェクトのジェスト。重複するモジュールをブラックリストに登録または削除するにはどうすればよいですか?

分類Dev

iOSプロジェクトとAndroidプロジェクトを独自のリポジトリに分離し、React-nativeリポジトリを維持するにはどうすればよいですか?

分類Dev

React / webpackプロジェクトでsassを使用するにはどうすればよいですか?

分類Dev

React-ReduxプロジェクトでEsriArcgis Mapsを使用するにはどうすればよいですか?

分類Dev

(Reactプロジェクトの)非reactモジュール内でmoment()ライブラリを使用するにはどうすればよいですか?

分類Dev

Android StudioのReactネイティブプロジェクトに外部ライブラリを含めるにはどうすればよいですか?

分類Dev

SafeAreaViewをreact-nativeバージョン0.48.0でプロジェクトにインストールするにはどうすればよいですか?

分類Dev

React Native-ログイン後に認証トークンを保存して他の画面に移動するにはどうすればよいですか?

分類Dev

create-react-appベースのプロジェクトを実行するポートを指定するにはどうすればよいですか?

分類Dev

JHipster Reactプロジェクトで「my-suffix」を変更または削除するにはどうすればよいですか?

分類Dev

React-nativeプロジェクトから追加された1つのパーミッションを削除するにはどうすればよいですか?

分類Dev

React-nativeプロジェクトにexpoモジュールを挿入するにはどうすればよいですか?

分類Dev

React NativeでFirestoreのドキュメントを削除するにはどうすればよいですか?

分類Dev

React Nativeプロジェクトでiosフォルダーを再生成するにはどうすればよいですか?

分類Dev

React Nativeのリストからアイテムを削除するにはどうすればよいですか?

分類Dev

create-react-appベースのプロジェクトにフォントを追加するにはどうすればよいですか?

分類Dev

HTMLをオブジェクトプロパティの値としてreact状態で保存するにはどうすればよいですか?

分類Dev

React Nativeの文字列からその値を参照してオブジェクトにアクセスするにはどうすればよいですか?

分類Dev

Reactでオブジェクトの配列内の複数のアイテムを削除するにはどうすればよいですか?

分類Dev

Yarnを使用してReact Nativeプロジェクトを作成するにはどうすればよいですか?

分類Dev

Yarnを使用してReact Nativeプロジェクトを作成するにはどうすればよいですか?

分類Dev

Yarnを使用してReact Nativeプロジェクトを作成するにはどうすればよいですか?

分類Dev

[React-Native-Firebase] onMessageの存在イベントを削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    React Nativeで画面のロック解除を検出するにはどうすればよいですか?

  2. 2

    オブジェクトを含む配列をreact-nativeの次の画面に送信するにはどうすればよいですか?

  3. 3

    React Typescriptのプロジェクト全体から未使用のインポート/宣言を削除するにはどうすればよいですか?

  4. 4

    React Nativeを使用してオブジェクトのプロパティにアクセスするにはどうすればよいですか?

  5. 5

    既存のreact-nativeプロジェクトからAndroidManifest.xmlを生成するにはどうすればよいですか?

  6. 6

    既存のreact-nativeプロジェクトからAndroidManifest.xmlを生成するにはどうすればよいですか?

  7. 7

    React-Nativeプロジェクトのジェスト。重複するモジュールをブラックリストに登録または削除するにはどうすればよいですか?

  8. 8

    iOSプロジェクトとAndroidプロジェクトを独自のリポジトリに分離し、React-nativeリポジトリを維持するにはどうすればよいですか?

  9. 9

    React / webpackプロジェクトでsassを使用するにはどうすればよいですか?

  10. 10

    React-ReduxプロジェクトでEsriArcgis Mapsを使用するにはどうすればよいですか?

  11. 11

    (Reactプロジェクトの)非reactモジュール内でmoment()ライブラリを使用するにはどうすればよいですか?

  12. 12

    Android StudioのReactネイティブプロジェクトに外部ライブラリを含めるにはどうすればよいですか?

  13. 13

    SafeAreaViewをreact-nativeバージョン0.48.0でプロジェクトにインストールするにはどうすればよいですか?

  14. 14

    React Native-ログイン後に認証トークンを保存して他の画面に移動するにはどうすればよいですか?

  15. 15

    create-react-appベースのプロジェクトを実行するポートを指定するにはどうすればよいですか?

  16. 16

    JHipster Reactプロジェクトで「my-suffix」を変更または削除するにはどうすればよいですか?

  17. 17

    React-nativeプロジェクトから追加された1つのパーミッションを削除するにはどうすればよいですか?

  18. 18

    React-nativeプロジェクトにexpoモジュールを挿入するにはどうすればよいですか?

  19. 19

    React NativeでFirestoreのドキュメントを削除するにはどうすればよいですか?

  20. 20

    React Nativeプロジェクトでiosフォルダーを再生成するにはどうすればよいですか?

  21. 21

    React Nativeのリストからアイテムを削除するにはどうすればよいですか?

  22. 22

    create-react-appベースのプロジェクトにフォントを追加するにはどうすればよいですか?

  23. 23

    HTMLをオブジェクトプロパティの値としてreact状態で保存するにはどうすればよいですか?

  24. 24

    React Nativeの文字列からその値を参照してオブジェクトにアクセスするにはどうすればよいですか?

  25. 25

    Reactでオブジェクトの配列内の複数のアイテムを削除するにはどうすればよいですか?

  26. 26

    Yarnを使用してReact Nativeプロジェクトを作成するにはどうすればよいですか?

  27. 27

    Yarnを使用してReact Nativeプロジェクトを作成するにはどうすればよいですか?

  28. 28

    Yarnを使用してReact Nativeプロジェクトを作成するにはどうすればよいですか?

  29. 29

    [React-Native-Firebase] onMessageの存在イベントを削除するにはどうすればよいですか?

ホットタグ

アーカイブ