我是React Native的新手,我正为对象导出问题而苦苦挣扎。在我的应用中,我从存储在变量Settings.translationType
中的后端简单字符串中接收。收到后,我正在渲染一个简单的视图,就像这样:
import React, { Component } from 'react';
import { Text, View } from 'react-native';
import Translations from '../constants/Translations';
export default class HomeScreen extends Component {
render() {
return(
<View>
<Text>{Translations.one}</Text>
</View>
)
}
}
这会带来一些麻烦。我有一个.js文件(Translations),它取决于来自后端服务的内容,它提供正确的翻译类别名称。看起来像这样:
import Category1 from './translations/Category1';
import Category2 from './translations/Category2';
import Category3 from './translations/Category3';
const Translations = () => {
switch (Settings.translationType) {
case '2':
return Category2;
case '3':
return Category3;
default:
return Category1;
}
}
export default Translations();
在./translations
文件夹中,我有三个.js文件,如下所示:
import LocalizedStrings from 'localized-strings';
const Category1 = new LocalizedStrings({
en: {
one: 'Restaurant',
two: 'Café',
three: 'Pub'
},
fi: {
one: 'Ravintola',
two: 'Kahvila',
three: 'Pub'
},
sw: {
one: 'Restaurang',
two: 'Kafé',
three: 'Pub'
},
de: {
one: 'Restaurant',
two: 'Cafe',
three: 'Pub'
},
})
export default Category1;
在Expo CLI中运行我的应用程序后,总是从BE正确获取Settings.translationType
,但出现类似Unable to resolve module './translations/Category1.js' from '~/RN/MyProject/src/constants/Translations.js': The module './translations/Category1.js' could not be found from '~RN/MyProject/src/constants/Translations.js'. Indeed, non of these files exists: (and there are listed the files with other extensions of Category1 file, located at ~/RN/MyProject/src/constants/translations/)
我认为我遇到了一些逻辑问题(语法看起来不错),因此,如果我缺少某些内容或有其他解决方案,请多多指教!
编辑: 添加了我的文件夹结构。
答案 0 :(得分:0)
好的,我想我发现了您的问题。在Translations.js中,您的导出语句应为
export default Translations;
代替
export default Translations();
还要确保所有类别文件都以相同的方式导出。 看看是否可行。
答案 1 :(得分:0)
我发现在源文件中我拼错了文件的路径,语法错误最严重。更改之后,所有工作正常。就您所知Atin Singh,export default Translations
(不带花括号)会传递''
而不是正确的翻译字符串。谢谢大家的帮助!