我正在做我的第一个react-native项目,我正在尝试创建一个语言切换/切换。我制作了一个包含当前语言和按钮文本的globals模块。它的工作,但意见没有重新呈现。当我使用expo在任何随机的地方按保存时,该应用将重新加载并显示新文本。我有两个不同的json文件,两者都是另一种语言。
在标题中,我有此按钮:
<TouchableHighlight onPress={() => handleLangSelect()}>
<MenuItem title={GLOBAL.button}/>
</TouchableHighlight>
此操作:
const handleLangSelect = () => {
if(GLOBAL.lang == "English"){
GLOBAL.lang = "Dutch"
GLOBAL.button = "ENG"
}else{
GLOBAL.lang = "English"
GLOBAL.button = "NL"
}
}
和将使用全局信息获取正确json的主页。
function HomePage() {
const GLOBAL = require('../globals/global');
return (
<Container>
<Header />
<FlatList
data={GLOBAL.lang == "Dutch" ? ArticlesNL : ArticlesENG}
keyExtractor={(item, index) => item.id}
renderItem={({ item }) =>
<ArticleHome title={item.title} text={item.text} preview={item.preview} image={item.src} key={item.id} />
}
/>
</Container>
);
}
export default HomePage;
答案 0 :(得分:0)
您应该使用useEffect挂钩来监视语言更改。
应该类似于以下内容:
useEffect(() => {
}, [GLOBAl.lang]);