我正在使用 History Api 使用 ajaxify 插件在我的网站中的页面之间切换,该插件依赖于来自该站点http://4nf.org/的 historyjs 。它使用请求仅更新页面中的 div 并保留其他所有内容(页眉、页脚)。
它工作得很好,但是当在某些页面中使用 reactjs 组件时,它就不能很好地工作了。
我正在使用 reactjs 从服务器呈现数据并在页面中表示它,但是当我切换页面时,react 不会重新加载页面中的内容,而是给我一个空白页面。
每次我获得页面时,如何让历史进入反应并使反应重新获取内容?
我下载了 chrome 的 react devtool 并且我认识到 react 组件仍然在我可以在每次页面更改时卸载并重新安装 react !!?
反应代码:
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"});});
当我加载主页时,React 代码运行良好,但是当我导航并返回主页时,它给了我一个空白页面,那么我该如何重新渲染反应?