当前位置:  开发笔记 > 编程语言 > 正文

在ReactJS应用程序中实现Facebook评论插件

如何解决《在ReactJS应用程序中实现Facebook评论插件》经验,为你挑选了1个好方法。

我正在尝试在当前使用React Router的ReactJS应用程序中加载facebook评论插件.

如果我把facebook初始化代码放在我的页面的componentDidMount()方法中,它会第一次加载.但是在转到另一个页面然后又回到它之后,它根本不加载插件.

我是否需要做些什么才能让它一直出现?

我想我需要删除facebook init并重新重新初始化.但这感觉不对.

有什么建议?下面是我的组件代码

```

import React, { Component } from 'react';
import SlidingPanels from '../components/SlidingPanels';

export class Feedback extends Component {
    constructor() {
        super();
    }

    componentDidMount() {
        $(window).scrollTo(0, '0.5s');

        window.fbAsyncInit = function() {
            FB.init({
                appId      : '115517331888071',
                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
            });
        }.bind(this);

        // 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'));
    }

    render() {
        return (
            
); } }

``

谢谢,约翰.



1> luschn..:

您只需要初始化JavaScript SDK一次,因为componentDidMount只有它被调用一次就好了.尝试把FB.XFBML.parse()componentDidUpdate:

componentDidUpdate() {
    FB.XFBML.parse();
}

我不确定这是否是最佳解决方案,但它应该有效.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有