javascript - 平台特定文件 file.ios.js | 未正确检测到 file.android.js
问题描述
根据react native 文档“React Native 将检测文件何时具有 .ios. 或 .android. 扩展名,并在其他组件需要时加载相关平台文件”。我正在尝试为每个平台导入不同的商店some.store.ios.js
,并some.store.android.js
在单个共享组件中实例化它my.component.js
。
some.store.android.js
const SomeStore = class {
consturctor() {
console.log('Android')
}
}
export default SomeStore
some.store.ios.js
const SomeStore = class {
consturctor() {
console.log('IOS')
}
}
export default SomeStore
my.component.js功能组件
import SomeStore from 'stores/some.store'
const MyComponent = observer(() => {
[someStore]= useState(() => new SomeStore())
}
不幸的是,我得到了两个平台的日志IOS。我已经在真实的移动设备上进行了测试。
我目前使用的解决方法是导出具有不同名称的商店,同时导入两者并在组件内部选择所需的:
import SomeStoreAndroid from 'stores/some.store.android'
import SomeStoreIOS from 'stores/some.store.ios'
...
if(Platform.OS === "android") {
[someStore]= useState(() => new SomeStoreAndroid())
} else {
[someStore]= useState(() => new SomeStoreIOS())
}
但这不应该是必需的,为什么第一种(自然)方法不起作用?
解决方案
推荐阅读
- java - java - 如何使用Java使用高质量的Graphic2D拉绳和图像?
- python - 获取键,而不是值
- c# - 如何以 IEnumerable 形式获取数据
从 DataTable 使用 LINQ? - c# - Aspose word Document 不想使用 print 方法
- javascript - 如何过滤对象?
- html - 字体粗细不适用于可变字体?
- typescript - 有没有办法使用 NSwag TypeScript 客户端将抽象类生成为任何对象?
- mongodb - Mongodb - $addToSet 运算符中由字符串索引的数组
- flutter - 如何使列表视图中的每个项目作为列颤动
- python - 500 内部服务器错误日志中的“el=str ns”是什么意思?