我正在使用"+"
(我肯定不相关)并且在某个时刻我正在制作自定义叠加层,需要jsPlumb
html构造函数:
$()
我试图返回一个字符串,或只是一个React元素,但这不起作用。
我很确定该方法只需要一些原始create:function(component) {
return $("<select id='myDropDown'><option value='foo'>foo</option><option value='bar'>bar</option></select>");
}
元素,所以如果它是我使用的jQuery则无关紧要。 (就像你在Chrome中控制它一样,它打印出html,我确定它是一些原生的DOM格式?)
如何从未安装的反应组件返回原始HTML ?
我能找到的是如何将HTML转换为React组件,这是相反的。我想完全避免使用jQuery
答案 0 :(得分:0)
jQuery对象可以轻松转换为DOM对象 例如.jQuery Obj:$(selector)。 DOM obj:$(selector)[0]。
答案 1 :(得分:0)
如果组件尚未呈现给您的DOM。您可以使用ReactDOMServer.renderToStaticMarkup(component)
。即使它的名称在ReactDOMServer内部间隔,它仍然可以工作。
另一种可能性是创建一个新的DOM节点,渲染对它做出正常反应,然后获取其内容。也许是这样的:
create: function(component) {
var div = document.createElement('div');
React.render(component, div);
return $(div.innerHTML);
}
答案 2 :(得分:0)
$("<div>")
将仅返回对象。更好的方法是将html包装成div并返回父html
$("<select id='myDropDown'><option value='foo'>foo</option><option value='bar'>bar</option></select>").wrap("<div>").parent().html()