如何在React-Native中查看导入文件的更改?

工程学

我有一个.js文件,其中存储了几个json对象,这些对象将用于在应用程序的各个部分中动态创建组件。例如:

import langUtil from '../utilities/langUtil';
export default {
 ...
    DEFAULT_DAY_TIME: {
        "times": [
            {
                "name":langUtil.day_morning,
                "value":"1"
            },
            {
                "name":langUtil.day_afternoon,
                "value":"2"
            },
            {
                "name":langUtil.day_evening,
                "value":"3"
            }
        ],
    ...
}

langUtil使用“ react-native-localization”包提供各种语言的翻译。因此,如果当前将语言设置为英语,则它将文本显示为“早晨”,如果将其法语显示为“拉丁”,依此类推。如果我在组件内使用langUtil.day_morning,这实际上没有问题:

<Text>{langUtil.day_morning}</Text> //will show the correct language when language is changed

因为我的应用程序具有更改语言的选项,所以我希望它可以将所有文本更新为新的语言,并且如上所述,这在组件内部使用langUtil时适用。

但是,如果我在渲染中这样做:

render() {
    const { DEFAULT_DAY_TIME} = json_constants;

和json_constants是这样导入的:

import json_constants from '../../assets/json_constants';

当语言文字更改时,它不会更新。我以为是因为它已经被导入并且已经设置了语言。因此它不会重新导入文件。我想知道是否有一种方法可以更改这些对象的语言,还是我需要重新考虑整个设置?

顺便说一下,这是这些对象的使用方式的简化示例:

{DEFAULT_DAY_TIME.map(item => {
        return (
                <View key={item.value} style={styles.label} >
                        <Text>{item.name}</Text>
                </View>
        );
})}
工程学

经过一番游戏后,我想出了一个对我有用的解决方案。有点“ hacky”,但现在可以完成工作。因此,首先,我将所有LangUtil组件引用都转换为字符串。

export const DEFAULT_DAY_TIME = {
    "times": [
        {
            "name":"langUtil.default.day_morning",
            "value":"1"
        },
        {
            "name":"langUtil.default.day_afternoon",
            "value":"2"
        },
        {
            "name":"langUtil.default.day_evening",
            "value":"3"
        }
    ],
...

我必须添加,default因为我需要使用require()而不是使用import完成这项工作,而且React-Native-Localization包有一个默认对象,它是当前设置的语言。

最后,在文件中,我需要常量:

let LangUtil = require('../utilities/langUtil') //you can do this above your class declaration
import {DEFAULT_DAY_TIME} from '../../assets/json_constants';

以及要使用常量并以正确的语言查看文本的位置,请使用eval():

{DEFAULT_DAY_TIME.map(item => {
    return (
            <View key={item.value} style={styles.label} >
                    <Text>{eval(item.name)}</Text>
            </View>
    );
})}

这可能不是最佳解决方案,但可以解决我的问题。也许它将帮助别人。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在React Native中禁用旋转?

来自分类常见问题

如何在React Native中更改特定列的样式?

来自分类Dev

如何在React Native中显示图标?

来自分类Dev

如何在React Native中渲染对象?

来自分类Dev

如何在React中更改CSS属性?

来自分类Dev

如何在react native中实现“查看幻灯片”效果?

来自分类Dev

如何在React Native中更改TextInput占位符的样式?

来自分类Dev

如何在React Native中将组件正确导入到我的导航器中?

来自分类Dev

如何在Android的React-native中包含“ .jar”文件?

来自分类Dev

如何在TypeScript中安装/导入React

来自分类Dev

如何在React Native中优化图像

来自分类Dev

如何在React Native中解析HTML文件?

来自分类Dev

如何在EXPO React-Native中更改IPA版本

来自分类Dev

如何在React中访问文件

来自分类Dev

如何在React Native中安装React Native Maps?

来自分类Dev

如何在React Native Map中更改标记的大小?

来自分类Dev

如何在React Native中删除警告

来自分类Dev

如何在React Native TextInput中更改光标的宽度?

来自分类Dev

如何在React Native中传递对象?

来自分类Dev

如何在React Native中刷新屏幕

来自分类Dev

如何在React Native中存储和导入静态文件?

来自分类Dev

无法在React Native中更改或使用导入的TextInput的属性

来自分类Dev

如何在React Native中优化图像

来自分类Dev

如何在 SonarQube 中查看导入的插件?

来自分类Dev

如何在 React Native 中缩放图像?

来自分类Dev

如何在React Native中更改语句中的单词样式?

来自分类Dev

如何在 React 中更改显示 onclick?

来自分类Dev

如何在 Django 中查看 pdf 文件?

来自分类Dev

如何在collectionview中查看pdf文件?

Related 相关文章

热门标签

归档