未捕获的TypeError:t不是函数

时间:2017-04-22 10:23:38

标签: reactjs facebook-javascript-sdk firebase-authentication facebook-login

当我点击“使用facebook登录”时,它会出现此错误“未捕获的TypeError:t不是函数”。 用户已登录但我的应用程序未显示主页。当我在没有facebook的情况下登录时它正常工作

登录错误屏幕截图http://prntscr.com/ezge48

    export function LoginWithFacebook(){
    return (dispatch) => {
        var provider = new firebase.auth.FacebookAuthProvider();
        firebase.auth().signInWithPopup(provider).then(function(result){
            var user = result.user;
            console.log("LoginSuccess");
            dispatch(AllActions.userSignInSuccess(user))
            browserHistory.replace('/home')
        })
                .catch((error) => {
                console.log("login error", error)
                dispatch(AllActions.userSignInFailed(error))
            })
    }
}

在HTML正文下面

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : ' app id here ',
      cookie     : true,
      xfbml      : true,
      version    : 'v2.8'
    });
    FB.AppEvents.logPageView();   
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>

1 个答案:

答案 0 :(得分:1)

我昨天遇到了同样的错误,我们可以在第156行看到:

using System;

namespace Sum
{
   public class Program
   {
       public static void Main(string[] args)
       {
           int number;
           Console.WriteLine("number\t" + "square\t" + "cube");
           Console.WriteLine("-----------------------------");

           for (int i = 0; i <= 20; i += 2)
           {
               number = i;
               int total = 0;
               int k = 0;
               do
               {
                   Console.Write(number + "\t");
                   total += number;
                   number *= i;
                   k++;
               } while (k < 3);
               Console.WriteLine("Total is "+total);
               Console.WriteLine();
           }

           Console.WriteLine("---------------------------------------");
        }
    }
}

因此,如果您在div class =&#34; fb-login-button&#34;上没有valide onlogin属性。如果我只是尝试使用:

,则不会声明此t函数
    var s=i.getVal(r,'on_login'),
        t=null,
        u=this._iframeOptions.name;

    if(s)
    {
        t=function v(w)
        {
            if(w.error_code)
            {
                j.debug('Plugin Return Error (%s): %s',w.error_code,w.error_message||w.error_description);
                return;
            }
            h.invokeHandler(s,null,[w]);
        };
        this.subscribe('login.status',t);
    }

我没有遇到这个问题,一切都是对的。