Обновление компонента React Native force, когда приложение переходит на передний план

Мое приложение отображает некоторые тексты. Мне нужно повторно визуализировать Component, когда размер шрифта изменяется через Настройки --> Специальные возможности --> Размер шрифта:

Обновление компонента React Native force, когда приложение переходит на передний план

Итак, в основном это последовательность se:

  • Приложение открыто (передний план).
  • Пользователь открывает настройки телефона, поэтому приложение переходит на передний план (не полностью закрывается).
  • Пользователь изменяет размер шрифта через Настройки --> Специальные возможности --> Размер шрифта.
  • Пользователь закрывает настройки и открывает приложение, которое переходит на передний план. опять таки.

На данный момент мне нужно перезагрузить приложение, потому что некоторые Components нужно адаптировать.

Я использую реагировать на родной информации об устройстве, чтобы получить размер шрифта с помощью const fontScale = DeviceInfo.getFontScale();, но его значение не обновляется до тех пор, пока приложение не будет полностью закрыто и открыто.

Есть идеи?

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
5
0
5 935
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете установить appstate на nextAppState. Это должно вызвать повторную визуализацию компонента.

import React, {Component} from 'react';
import {AppState, Text} from 'react-native';

class AppStateExample extends Component {
  state = {
    appState: AppState.currentState,
  };

  componentDidMount() {
    AppState.addEventListener('change', this._handleAppStateChange);
  }

  componentWillUnmount() {
    AppState.removeEventListener('change', this._handleAppStateChange);
  }

  _handleAppStateChange = (nextAppState) => {
    if (
      this.state.appState.match(/inactive|background/) &&
      nextAppState === 'active'
    ) {
      console.info('App has come to the foreground!');
    }
    this.setState({appState: nextAppState});
  };

  render() {
    return <Text>Current state is: {this.state.appState}</Text>;
  }
}

Спасибо за Ваш ответ! Можно ли реализовать с помощью хуков? Я новичок в React, и в моем проекте используются хуки.

Ale 04.04.2019 18:12

Я не углублялся в хуки, но мне потребовалось всего несколько минут, чтобы преобразовать такой простой компонент в функциональный компонент с помощью hooks. То, что я сейчас использую, это recomposeJS

Shivam 04.04.2019 18:19

Я всегда получаю сообщение об ошибке «Не могу выполнить обновление состояния React для несмонтированного компонента» всякий раз, когда я использую setState в обработчике событий appStateChange. Есть идеи, почему?

Rakib 06.08.2019 01:32

Другие вопросы по теме