5

我的应用程序显示一些文本。Component当字体大小通过设置->辅助功能->字体大小更改时,我需要重新渲染a :

在此处输入图像描述

所以基本上这是se序列:

  • 应用程序已打开(前台)。
  • 用户打开电话设置,因此应用程序进入前台(未完全关闭)。
  • 用户通过设置 --> 辅助功能 --> 字体大小更改字体大小。
  • 用户关闭设置并打开应用程序再次进入前台。

此时我需要重新加载应用程序,因为有些Components需要调整。

我正在使用react-native-device-info来获取字体大小const fontScale = DeviceInfo.getFontScale();但在应用程序完全关闭和打开之前,它的值不会更新。

有任何想法吗?

4

1 回答 1

5

您可以将 设置appstatenextAppState。它应该导致组件重新呈现。

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.log('App has come to the foreground!');
    }
    this.setState({appState: nextAppState});
  };

  render() {
    return <Text>Current state is: {this.state.appState}</Text>;
  }
}
于 2019-04-04T16:01:56.510 回答