我已经在React应用中添加了Facebook登录api
// 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
需要等待,直到index.html
中的FB.init
完成。我的评估正确吗?对此有什么建议吗?
您可以尝试添加[window.FB]作为someprovide 的使用效果