我正在创建一个应用程序,显示在三种语言的信息,而不使用任何APIS。在设置页面,用户可以单击更改为西班牙语按钮,这将存储在ASYNC存储。我是新的React Native,想知道这是否是最佳做法。
帐户设置
import { View, Text ,Button} from 'react-native'
import React, { useState , useEffect} from 'react'
import {AsyncStorage} from 'react-native';
const Account = () => {
const setspanish=()=> {
const lanugage = {
language:"spanish",
}
AsyncStorage.getItem('lang').then((datacart)=>{
if (datacart !== null) {
// We have data!!
const lang = JSON.parse(datacart)
lang.push(lanugage)
AsyncStorage.setItem('lang',JSON.stringify(lang));
}
else{
const lang = []
lang.push(lanugage)
AsyncStorage.setItem('lang',JSON.stringify(lang));
}
alert("ChangedLnag")
})
.catch((err)=>{
alert(err)
})
}
return (
<View>
<Button onPress={setspanish} title="spanish"/>
</View>
)
}
export default Account
我已经在不同的页面创建了一个状态,但是没有一个会自动更新。一旦我导航到其他页面,我已经使用三元运算符来呈现,这取决于接收异步存储语言值的状态,但是没有一个工作。
1条答案
按热度按时间0dxa2lsx1#
你应该在上下文中设置它并保存它,第一次你应该把它重新设置到上下文中我写了例子关于这一点:
这只是一个例子,我希望它能帮助你