我的项目主要基于这个boilerplate。为了不在以后的部署中遇到麻烦,我使用
expo
。
现在我只是想知道为什么部署到 Android 不起作用。当我将它部署到网络上时,它工作得很好,没有任何问题。但是 给了我 ,并且在 Android 模拟器上:
但是项目结构很干净并且
index.css
工作正常
Run in web
和 Run on android
有什么区别?
当我刚刚删除该index.css进行测试时。 Web 仍然可以使用,但没有样式。但在 Android 上,我现在在使用的
localstorage
上遇到另一个错误。
我知道
react-native
和react-web
之间有区别。但我认为expo
能够处理这个问题。也许我对expo
期望太高了?那么我的想法是不是错了,一切都很好。我所要做的就是让它在 Android 上运行,比如修复 index.css
问题和 localstorage
?或者有没有更智能的方法让我的 react-web
应用程序在我的 Android 设备上运行?
所以
react-native
和 react-native-web
非常不同。
react-native
- 使用本机 UI 控件并拥有对本机平台的完全访问权限react-native-web
- 将 React Native 的平台无关组件和 API 引入到 Web 虽然可以将
react-native-web
用于 Web 和 Android 等本机,但不建议这样做。您总是必须采取解决方法,例如使用 localstorage
。
最好完全切换到
react-native
并重写所有代码以本机方式工作。就像您现在必须直接在代码中创建 index.css
一样,而不是使用 Stylesheet
。
但是对于这种情况,有人真的想使用问题中的样板,您需要重构代码。 here对此进行了描述。 但总而言之,你需要一个像这样的助手
App.js
:
// /App.js
import React from 'react';
import HybridApp from './src/App';
const App = (props) => {
return (
<HybridApp />
);
}
export default App;
我面临着同样的问题,就像如果我在网络上运行它,它可以工作,但如果我在手机或 Android Studio 模拟器上运行它,那就不起作用了。 所以问题是我的电脑正在使用病毒防护应用程序,而该应用程序不允许网络连接。所以将其关闭并尝试一下。