Реакция «Навигационная навигационная проблема: условное рендеринг навигатора» приводит к пустому экрануIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Реакция «Навигационная навигационная проблема: условное рендеринг навигатора» приводит к пустому экрану

Сообщение Anonymous »

Привет, реагировать Нативные эксперты, < /p>
Я сталкиваюсь с проблемой с условной навигацией в моем нативном приложении React, где переключение между навигаторами на основе состояния приводит к пустому экрану. Вот подробности: < /p>
Описание задачи: < /p>
Мое приложение структурировано для условного оказания одного из двух навигаторов (OnboardingNavigator или TabNavigator) на основе Isonboarded состояние. Несмотря на то, что экран AboutsingStart загружается идеально при непосредственной перемещении с App.js (при жестком кодировании), интеграция условия для переключения между навигаторами приводит к пустую экрану.
Поведение наблюдалось:
Если app.js непосредственно устанавливает OnboardNavigator, OnboardingStart работает без проблем.
При использовании условной логики на основе Isonboarded это приводит к пустому экрану, даже если журналы консоли подтверждают, что Isonboarded получается правильно и установлен на false. < /p>
Вопросы: < /p>
Может ли возникнуть проблема, связанная с обновлениями состояния или условным рендерингом в Native, которая может вызвать это
Какие стратегии или практики отладки я могу использовать для дальнейшей диагностики и решения этой проблемы? < /p>
import React, { useState, useEffect } from 'react';
import { NavigationContainer } from '@react-navigation/native';
import AsyncStorage from '@react-native-async-storage/async-storage';
import OnboardingNavigator from './navigation/OnboardingNavigator';
import TabNavigator from './navigation/TabNavigator';

const App = () => {
const [isOnboarded, setIsOnboarded] = useState(null);

useEffect(() => {
const checkOnboarding = async () => {
try {
const onboarded = await AsyncStorage.getItem('@onboarded');
console.log('Onboarded Status:', onboarded);
setIsOnboarded(onboarded === 'true');
} catch (error) {
console.error('Failed to fetch onboarding status:', error);
}
};

checkOnboarding();
}, []);

return (

{isOnboarded ? : }

);
};

export default App;


Подробнее здесь: https://stackoverflow.com/questions/794 ... o-blank-sc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»