2016-01-07 15 views
7

Şu anda Yönlendirici Yönlendiricisi'ni kullanan bir ReactJS uygulamasında facebook yorum eklentisini yüklemeye çalışıyorum.ReactJS uygulamasında Facebook yorum eklentisini uygulama

Facebook init kodunu sayfamın componentDidMount() yönteminin içine koyarsam, ilk kez yüklenir. Ama başka bir sayfaya gittikten sonra tekrar geri dönüp, eklentiyi hiç yüklemiyor.

Her zaman görünmesini sağlamak için yapmam gereken bir şey var mı?

Sanırım facebook init'i kaldırmalı ve tekrar yeniden başlatmalıyım. Ama bu doğru hissetmiyor.

Herhangi bir öneriniz var mı? Aşağıda benim bileşeni

`` `

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 (
      <div> 
       <div className="fb-comments" data-href="https://www.facebook.com/cna.net.au/" data-numposts="10"></div> 
      </div> 
     ); 
    } 
} 

` `

teşekkür, John benim kodudur.

cevap

6

Sadece JavaScript SDK'sını bir kez başlatmanız yeterlidir ve componentDidMount sadece nerede olduğu belirsiz olduğunda çağrılır.

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

bu en iyi çözüm olup olmadığından emin değilim, ancak çalışması gerekir: componentDidUpdate yılında FB.XFBML.parse() koyarak deneyin.

+0

Harika. Yardım ettiğin için teşekkür ederim. –

İlgili konular