我希望能够为所有平台导出一个包,但是我使用一些带有简单JS回退的本机绑定。通常我会注意到差异
检查对象window
或exports
是否存在。
如何在React Native上实现这一目标?
答案 0 :(得分:10)
以下是检查代码是否在web,nodejs或react-native上的方法:
if (typeof document != 'undefined') {
// I'm on the web!
}
else if (typeof navigator != 'undefined' && navigator.product == 'ReactNative') {
// I'm in react-native
}
else {
// I'm in node js
}
来源:
答案 1 :(得分:0)
创建两个文件:一个名为file.web.js,另一个称为file.native.js, 并仅导入名字段'./yourdirectories/file'
答案 2 :(得分:-1)
不确定我是否正确理解了您的问题,但到目前为止,我们为解决所有平台并使React Native重写而采取的措施是:
-- file.js
-- file.android.js
-- file.ios.js
只有一个简单的
require('./file');
因此基于env(Node / React Native),可以透明地加载正确的文件。