2015-02-12 57 views
1

我使用纪录API使用ajaxify插件 取决于historyjs从本网站http://4nf.org/在我的网站页面之间切换。它仅使用请求来更新页面中的div,并保留其他所有内容(页眉,页脚)。历史进入反应

它工作得很好,但是当在某些页面中使用reactjs组件时,它不能很好地工作。

我使用reactjs渲染来自服务器的数据,并表示它的页面,但是当我切换页面反应不会重新加载页面中的内容,但它给了我一个空白页。

如何获得历史进入反应并发生反应,每一次我得到的页面时,重新获取内容?

我下载了铬反应devtool和我认识到,反应成分还在我可以卸载并重新挂载反应每次页面的变化!?

阵营代码:

var Postlist = React.createClass({ 
    getInitialState: function() { 
     socket.on("new",this.Updatepost); 
     return {posts: [], hasMore: true, onView: 5}; 
    }, 
    componentWillMount: function() { 
     this.state.posts.push(this.props.newposts); 
     this.setState({posts: this.props.newposts}); 
    }, 
    $.ajax({ 
     url: 'load_posts.php', 
     dataType: 'json', 
     success: function (data) { 
      var x = data; 
      React.render(<Postlist newposts={x} />,document.getElementById("main")); 
     }.bind(this), 
     error: function (xhr, status, err) { 
      console.error(this.props.url, status, err.toString()); 
     }.bind(this) 
    }); 

这个代码页之间进行导航。

 $(document).ready(function() { 
     $("#r_sec").ajaxify({ 
      previewoff: true, 
      fade: 500, 
      inline:false, 
      selector : ".nav_ul a"});}); 

阵营代码工作这么好当我加载网页,但是当我浏览并返回到主页它gaves我一个空白页面,让我怎么能重新渲染反应?

+0

您需要添加一些不适用的具体示例以帮助您。向我们展示重现问题所需的最低代码。 – WiredPrairie 2015-02-12 11:41:42

+0

我更新了帖子@WiredPrairie – 2015-02-12 21:41:05

+0

感谢您为解决问题所做的努力。获得固定的缩进,我将投票重新开放。 – 2015-02-12 22:37:30

回答

0

如果您想依赖React,则不应使用ajaxify插件。

相反,你应该考虑使用一个简单的路由器一样page.js和编写通过AJAX获取数据,并与之反应使得它的单一路线。

与Ajaxify插件的问题是,它使用jQuery的渲染内容,现在作出反应和jQuery都争取在DOM控制。