假設我有一個函數generateList()
用於更新狀態和將其映射到一個onClick到<li>.
差分.bind()的箭頭函數()=>使用在陣營
<li className="some-classname"}
onClick={this.generateList('product')}> Product </li>
有倍我遇到這樣的錯誤:
Warning: setState(...): Cannot update during an existing state transition (such as within
渲染). Render methods should be a pure function of props...
而這樣的。我挖掘互聯網爲這個答案,像這樣在來到answer:
<li className="some-classname"}
onClick={this.generateList.bind(this, 'product')}> Product </li>
但是我看到一個答案太(在Github上,但似乎無法找到它)是
<li className="some-classname"}
onClick={() => this.generateList('product')}> Product </li>
主要區別是什麼?哪個更合適高效?當將函數映射到onClick
或作爲React組件(我主要使用它)的屬性時,我們應該使用這樣的.bind
和() =>
是什麼原因?
嘿,我有錯,對不起。它應該是'()=> this.generateList('product')}'。 – anobilisgorse
更新 - 是否清除了你的東西? –
是的,所以就我關注性能而言,我必須始終選擇在構造函數處「綁定」函數,然後我可以在'render'中自由使用它? – anobilisgorse