使用asyncstorage响应本机更改状态

问题描述 投票:1回答:1

我想在响应原生中设置状态,点击按钮然后在asyncStorage中设置并重新启动以更改视图但是当我使用componentDidMount时它不是tru并显示错误

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但是发生错误。任何人都可以帮助我。在模拟器中它确定但在发布应用程序中不是真的

react-native asyncstorage
1个回答
1
投票

您可以使用以下内容将数据添加到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 })
© www.soinside.com 2019 - 2024. All rights reserved.