首页 > 解决方案 > `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.initinindex.html完成。我对这个评估是否正确?对此有什么建议吗?

标签: reactjsfacebook

解决方案


您可以尝试将 [window.FB] 添加为 someprovide 的 useEffect 的部门


推荐阅读