Javascript 渲染到jQuery插入DOM的元素
在我的应用程序中,我使用AJAX获取特定的视图(模板)文件,并在页面加载时使用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() {
$.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代码?这看起来很明显,因为它就在我面前…谢谢!