问题描述
// 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...
}
我收到的错误消息是未在SomeProvider.js
中定义FB,然后为react-dom.production.min.js
定义了另一条消息。
我不明白为什么。
更新
当我反复刷新时,有时不会出现该错误,这使我认为这是一个异步问题。似乎window.FB.getLoginStatus
需要等待,直到FB.init
中的index.html
完成为止。我对这项评估正确吗?有什么建议吗?
解决方法
您可以尝试将[window.FB]添加为someprovide的useEffect的使用