栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将Facebook Web SDK与ReactJS组件状态集成

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将Facebook Web SDK与ReactJS组件状态集成

是的,您是对的,可以很好地将Facebook登录信息与react组件集成在一起。

示例登录组件可以是这样的-

import React from 'react';class LoginComponent extends React.Component {  constructor(props) {    super(props);    this.state = {    };  }  loadFbLoginApi() {        window.fbAsyncInit = function() { FB.init({     appId      : FB_APP_ID,     cookie     : true,  // enable cookies to allow the server to access     // the session     xfbml      : true,  // parse social plugins on this page     version    : 'v2.5' // use version 2.1 });        };        console.log("Loading fb api");          // Load the SDK asynchronously        (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'));  }  componentDidMount() {        this.loadFbLoginApi();    }    testAPI() {      console.log('Welcome!  Fetching your information.... ');      FB.api('/me', function(response) {      console.log('Successful login for: ' + response.name);      document.getElementById('status').innerHTML =        'Thanks for logging in, ' + response.name + '!';      });    }    statusChangeCallback(response) {      console.log('statusChangeCallback');      console.log(response);      if (response.status === 'connected') {        this.testAPI();      } else if (response.status === 'not_authorized') {          console.log("Please log into this app.");      } else {          console.log("Please log into this facebook.");      }    }    checkLoginState() {      FB.getLoginStatus(function(response) {        this.statusChangeCallback(response);      }.bind(this));    }    handleFBLogin() {        FB.login(this.checkLoginState());        }    render() {        return (     <div>         <MyButton  classNames = "btn-facebook"  id         = "btn-social-login"  whenClicked = {this.handleFBLogin}  >      <span className="fa fa-facebook"></span> Sign in with Facebook         </MyButton>     </div>    );    }}export default LoginComponent;

连接收到的响应状态后,这意味着用户已通过Facebook登录,您可以在组件上设置状态以反映该状态。例如

response.status === 'connected'this.setState({userLoggedIn:true});

MyButton
在React中使用了一个自定义按钮组件(),您可以很容易地创建它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616511.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号