реагировать на собственное изменение состояния с помощью asyncstorage - PullRequest
0 голосов
/ 23 февраля 2019

Я хочу, чтобы установить состояние в реагировать родной с нажатием на кнопку, а затем установить в asyncStorage и перезапустить, чтобы изменить вид, но когда я использую componentDidMount, это не правда и показать ошибку

onRadioPressed2 = async() => {
    const Newlanguage ='fa';
    await AsyncStorage.setItem('language',Newlanguage);
    this.setState({language:'fa'});
    RestartAndroid.restart();
};

это мойфункция для setState

componentDidMount = () => AsyncStorage.getItem('language').then((Newlanguage) => this.setState({ lang: Newlanguage }));

на другой странице, проверяет в ComponentdidMount, но происходит ошибка. любой может помочь мне. В симуляторе все в порядке, но в приложении выпуска не верно

1 Ответ

0 голосов
/ 23 февраля 2019

Вы можете использовать ниже для добавления данных в AsyncStorage хранилище.

onRadioPress2() {
        try {
            const Newlanguage = 'fa';
            AsyncStorage.setItem('language', Newlanguage)
            this.setState({ language: 'fa' });
            RestartAndroid.restart();

        } catch (error) {
        }
    }

Вы можете вызвать ссылку на функцию:

this.onRadioPress2()

Вы можете получить значение, используяследующий код:

    AsyncStorage.getItem('language').then((Newlanguage) => {
        this.setState({
            language: Newlanguage
        })
    }).done();

Ваша ошибка в том, что вы используете неправильное имя при настройке состояния.

this.setState({ lang: Newlanguage }) --> this.setState({ language: Newlanguage })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...