发生状况
使用class
设置element的类名时,如:javascript
var Com=React.createClass({ render:function(){ return ( <div class="com"></div> ); } });
正确使用方式html
var Com=React.createClass({ render:function(){ return ( <div className="com"></div> ); } });
defaultValue
or value
props on <select> instead of setting selected
on <option>.发生状况
使用selected
属性选中option
标签时,如:java
var Com=React.createClass({ render:function(){ return ( <select> <option value="1" selected={"1"==this.state.value}>男</option> <option value="2" selected={"1"==this.state.value}>女</option> </select> ); } });
正确使用方式:*node
var Com=React.createClass({ render:function(){ return ( <select value={this.state.value}> <option value="1">男</option> <option value="2">女</option> </select> ); } });
XXX
.翻译
暂无,英语很差。。。数组
发生状况
1.遍历this.props.children
时发生,由于this.props.children
的返回值的类型在不一样状况下是不同的,它的类型共有三种状况:this
若是当前组件没有子节点,它就是 undefined
;spa
若是有一个子节点,数据类型是 object
;翻译
若是有多个子节点,数据类型就是 array
。code
解决方法:
使用React.Children.toArray
方法将this.props.children
转化成标准的数组格式,而后在进行遍历操做:htm
var childs = React.Children.toArray(this.props.children); childs.forEach(function(item){ ... });
<div>XXX</div>
发生状况
代码中包含dangerouslySetInnerHTML={{__html: this.state.html}}
相似的代码时,而且使用这段代码的标签是某些只能包含特定标签的标签,有点绕。。。
看这个例子:
<input type="text" id="input" /> <br /> <button type="button" onclick="setHtml">设置HTML</button> <br /> <div id="box"></div>
function setHtml(){ var box=document.getElementById("box"), input=document.getElementById("input"); ReactDOM.render(<Com html={input.value} />,box); } var Com=React.createClass({ render:function(){ return ( <p className={this.props.className} dangerouslySetInnerHTML={{__html: this.props.html}}></p> ); } });
在input内输入<span>123</span>
,点击按钮后,可正常设置;
在input内输入<div>123</div>
,点击按钮后,代码即报错,仔细想一下就知道,其实<p>
标签内是不容许包含div
标签的,因此React会报错~