Javascript 渲染到jQuery插入DOM的元素

Javascript 渲染到jQuery插入DOM的元素,javascript,jquery,ajax,reactjs,Javascript,Jquery,Ajax,Reactjs,在我的应用程序中,我使用AJAX获取特定的视图(模板)文件,并在页面加载时使用jQuery将其附加到DOM: $.get('/ajax/load/myview', function(view) { siteFetchComplete(); $('#container').append(view); }); 视图中有各种元素,我想使用React来引用和呈现这些元素。例如,要加载一系列帮助台通知单,我可以执行以下操作: function siteFetchComplete() {

在我的应用程序中,我使用AJAX获取特定的视图(模板)文件,并在页面加载时使用jQuery将其附加到DOM:

$.get('/ajax/load/myview', function(view) {
    siteFetchComplete();
    $('#container').append(view);
});
视图中有各种元素,我想使用
React
来引用和呈现这些元素。例如,要加载一系列帮助台通知单,我可以执行以下操作:

function siteFetchComplete() {
    var TicketBox = React.createClass({
        render: function() {
            return (
                <h1>Helpdesk Tickets</h1>
            );
        }
    });

    React.render(
        <TicketBox />,
        $('#tickets')
    );
}
函数siteFetchComplete(){
var TicketBox=React.createClass({
render:function(){
返回(
服务台票证
);
}
});
反应(
,
$(“#门票”)
);
}
其中,
$(“#tickets”)
是在处理AJAX请求之后附加的元素


调用
React.render
时如何引用
$(“#tickets”)
?当前我收到一个
错误:不变冲突:_registerComponent(…):目标容器不是DOM元素。
错误,因为React在以这种方式调用时无法看到元素。

您正在传递一个jQuery包装器对象来React,而不是DOM元素。相反,您应该使用jQuery的
get()
方法将其展开,并将原始DOM对象传递给React:

$('#tickets').get(0) // returns the DOM element

在执行
append()
操作之后,还要将对
siteFetchComplete()
的调用移动到,否则jQuery将试图在元素存在之前找到它

只要在ajax请求完成插入$('tickets')之前调用React.render,就没有问题。当React.render运行时,它会在那一刻看到DOM内容,它会找到DOM元素。我更新了我的代码…你是说这样应该行吗?在我使用jQuery操作DOM之前,我调用了我的React代码?这看起来很明显,因为它就在我面前…谢谢!