React/redux 应用程序在 Safari 上呈现空白屏幕

新手上路,请多包涵

我在 React/redux 中构建了一个应用程序,它适用于我尝试过的每个浏览器,但 MacOS 上的 Safari 和 iPhone 上的任何浏览器。我没有收到任何错误,没有控制台消息,没有任何信息可以给我一些想法。它只在 Safari 中呈现标签并且屏幕是空白的。

http://podcast.exploration.io

你知道我如何追踪这个问题吗?

谢谢

原文由 Michal Holub 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 806
2 个回答

我发现了问题。它失败的主要原因是“获取”功能……这在 Safari 中不可用。我不确定为什么它不打印任何东西,但我怀疑,因为在 try/catch 中调用了“fetch”。

原文由 Michal Holub 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您在一台设备上有黑屏,但在另一台设备上没有,请参阅 https://stackoverflow.com/a/61215326/470749

此外,如果您的代码在某处使用 fetch 并且您的浏览器不支持它,则可能会发生这种情况。

检查浏览器和操作系统支持: https ://caniuse.com/#search=fetch

官方 Redux 文档 说:

我们在示例中使用 fetch API。它是一种用于发出网络请求的新 API,可替代 XMLHttpRequest 以满足大多数常见需求。由于大多数浏览器本身还不支持它,我们建议您使用 cross-fetch 库:

 // Do this in every file where you use `fetch`
import fetch from 'cross-fetch'

在内部,它在客户端使用 whatwg-fetch node-fetch ,在服务器上使用 —,因此如果您将应用程序更改为通用,则无需更改 API 调用。

请注意,任何 fetch 都假定 Promise polyfill 已经存在。确保您拥有 Promise polyfill 的最简单方法是在任何其他代码运行之前在您的入口点启用 Babel 的 ES6 polyfill:

 // Do this once before any other code in your app
import 'babel-polyfill'

原文由 Ryan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题