發生狀況
使用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會報錯~