Rul*_*awa 5 javascript ajax reactjs
我使用React实现了Include组件.它从网址加载内容.这个测试工作,但也产生一个意外的无限循环与渲染......为什么?
<script type="text/jsx">
/** @jsx React.DOM */
var Include = React.createClass({
getInitialState: function() {
return {content: 'loading...'};
},
render: function() {
var url = this.props.src;
$.ajax({
url: url,
success: function(data) {
this.setState({content: data});
}.bind(this)
});
return <div>{this.state.content + new Date().getTime()}</div>;
}
});
var Hello = React.createClass({
render: function() {
return <Include src="hello.txt" />;
}
});
React.renderComponent(
<Hello />,
document.getElementById('hello')
);
</script>
Run Code Online (Sandbox Code Playgroud)
我意识到渲染被执行了很多次,所以这不是我的 ajax 调用更好的地方 (-_-)'
这种方式效果很好:
<script type="text/jsx">
/** @jsx React.DOM */
var Include = React.createClass({
getInitialState: function() {
var url = this.props.src;
$.ajax({
url: url,
success: function(data) {
this.setState({content: data});
}.bind(this)
});
return {content: 'loading...'};
},
render: function() {
return <div>{this.state.content + new Date().getTime()}</div>;
}
});
var Hello = React.createClass({
render: function() {
return <Include src="hello.txt" />;
}
});
React.renderComponent(
<Hello />,
document.getElementById('hello')
);
</script>
Run Code Online (Sandbox Code Playgroud)
感谢您的阅读!
| 归档时间: |
|
| 查看次数: |
8622 次 |
| 最近记录: |