reactjs - `Uncaught ReferenceError: FB is not defined` 在 React
问题描述
我已将 Facebook 登录 api 添加到 React 应用程序中
// index.html
<body>
<div id="fb-root"></div>
<script src="https://connect.facebook.net..." etc... />
<script>
const FB = window.FB;
window.fbAsyncInit = function() {
FB.init({etc...});
FB.AppEvents.logPageView();
}
</script>
etc...
<div id="root"></div>
</body>
然后是 React 提供程序中的另一个
// SomeProvider.js
const SomeProvider = () => {
useEffect(() => {
window.FB.getLoginStatus((res) => {etc...});
}, []);
etc...
}
我收到的错误消息是 FB 未定义,SomeProvider.js
然后是另一个相同的消息react-dom.production.min.js
。
我不明白为什么。
更新
当我反复刷新时,有时不会出现那个错误,这让我认为这是一个异步问题。似乎window.FB.getLoginStatus
需要等到FB.init
inindex.html
完成。我对这个评估是否正确?对此有什么建议吗?
解决方案
您可以尝试将 [window.FB] 添加为 someprovide 的 useEffect 的部门
推荐阅读
- javascript - GET http://localhost:8100/[object%20File] 404(未找到)
- angular - 角度预览图像在正确的位置
- sql - 查找每列的聚合值并将其转换为一行
- python - 我如何计算谷歌股票的高低百分比
- excel - 如何动态更改要过滤的列?
- spring - Spring Boot 标准 UUID 编解码器不适用于 AbstractMongoClientConfiguration
- java - 单击按钮时将 JLabel 转换为计时器
- mysql - 尝试过滤状态 id 等于 2 且其他用户总数为 0 的任何订单的用户
- php - Codeigniter:使用 foreach 方法使用选择/选项更改数据显示
- php - 我可以在 React JS 的联系表单中使用 action='POST' 到 PHP 吗?