如何使React.js输出有效的xml而不是html



我遇到一个问题,React.js忽略了在html中不需要(但在XML中需要)的元素的结束标记,例如<input>

例如(jsfiddle:http://jsfiddle.net/hc4hs9on/)

console.log(React.renderComponentToString(<input></input>));

将输出

<input data-reactid=".0" data-react-checksum="1975453773">

如果尝试渲染组件,则会引发错误DOMException: Failed to set the 'innerHTML' property on 'Element': The provided markup is invalid XML, and therefore cannot be inserted into an XML document.

我如何告诉react我希望它向我发送正确的标记?

是的,您需要修改React的源代码。

幸运的是,这是一条单行(尽管我还没有测试过):

// ReactDOMComponent.js L178 on master
var closeTag = omittedCloseTags[this._tag] ? '' : '</' + this._tag + '>';
// change it to:
var closeTag = '</' + this._tag + '>';

XHTML大多被认为是无关紧要的。。。好好看看你是否有充分的理由继续使用它。

最新更新