我遇到一个问题,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大多被认为是无关紧要的。。。好好看看你是否有充分的理由继续使用它。