重新渲染按钮单击时的本机视图

时间:2020-06-05 13:45:01

标签: react-native

我正在做我的第一个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;

1 个答案:

答案 0 :(得分:0)

您应该使用useEffect挂钩来监视语言更改。

应该类似于以下内容:

useEffect(() => {
}, [GLOBAl.lang]);