Reactjs - loadResourcesFromServer - 组合两个源

时间:2015-06-03 17:21:56

标签: javascript jquery reactjs

编辑:这是答案

找到答案......事实上非常简单:只需要​​合并父母和孩子。两者都可以提出他们的ajax请求:

评论框将是:

var CommentBox = React.createClass({
    loadCommentsFromServer: function() {...}
    getInitialState: function() {...}
    componentDidMount: function() {...}
    render: function() {
    return (
            <div>
            <Comment the_props={that.you.want} />
            <Author userId={this.state.id.that.we.get.via.ajax.request} />
        </div>
    );
}

作者:

var Author = React.createClass({
    loadAuthorFromServer: function() { // its own ajax request
        $.ajax({
            ...
        });
    }
    getInitialState: function() {...}
    componentDidMount: function() {...}
    render: function() {
    return (
        <div>
            Hello i am {this.state.data.author} and this is my picture! <img src="{this.state.data.link}"/>
        </div>
    );
}  

END OF EDIT

我尝试在react js中组合两个数据源。在本教程之后,我有类似

的内容
var CommentBox = React.createClass({
    loadCommentsFromServer: function() {
        $.ajax({
          url: this.props.url,
          ...

这显然只返回来自一个来源的数据。

但是我必须将Comment对象与其作者结合起来。这需要第二个查询,这取决于第一个查询的结果。在jQuery中我可以写

var queryComment = $.ajax({...});
queryComment.done(function(json){
    $.each(json, function(key, comment) {
    var queryAuthor = $.ajax({...});
        queryAuthor.done(function(json){
            comment.author = json;
        });
    });
});

我在反应文档中找不到如何做到这一点。我的猜测是我应该创建一个reactjs Author对象并使用Composition(http://facebook.github.io/react/docs/multiple-components.html),但这些示例都是静态的,只使用渲染函数...非常感谢!

0 个答案:

没有答案