我想重用一些从API检索两个应用程序数据的代码。一个是使用React Native的iOS应用程序。另一个是使用React.js的网站。
我最初编写了在构建iOS应用程序时从API检索数据的类。因此,我使用了React Native中提供的fetch
方法。
不幸的是,React.js中没有这样的方法。
如果我想重用我的代码,我最好的选择是通过使用方法fetch
创建一个类HTTPRequests
来调用React Native的fetch
方法的调用。 React Native的fetch
方法或' $。get'取决于项目使用的lib的方法:React.js或React Native。
我的问题如下:如何检测项目中React.js或React Native的使用情况。我的第一个想法是检测我的JS代码是通过RCTRootView
引擎还是浏览器执行的。但我不知道如何做到这一点。
有什么建议吗?
谢谢!
答案 0 :(得分:3)
我的建议是将共享逻辑移动到单独的模块(bower,npm,ES6),概括通过fetch polyfill请求数据的方式,并且永远不会在项目中检测React / React.native。当新版本的React / React.native出现时,JS代码检测将使您的代码变得不必要复杂且难以支持。
答案 1 :(得分:1)
我使用React Native的platform-specific extensions功能使用React和React Native构建跨平台应用程序的成功经验。我刚刚描述了如何构建代码以便在博客Code sharing between React and React Native applications
中实现这一点