React元件在更新狀態時不會重新渲染
<p>我認為你對這個問題有更好的解決方案:
我有一個包含我的貓物件陣列的檔案:</p>
<pre class="brush:php;toolbar:false;">var categories = [
{
"id": 1,
"name" : "Faktury",
"selected" : false
},
{
"id": 2,
"name" : "Telefony",
"selected" : false
},
{
"id": 3,
"name" : "Komputery",
"selected" : false
},
{
"id": 4,
"name" : "Rachunkowośc",
"selected" : false
},
{
"id": 5,
"name" : "Finanse",
"selected" : false
}
];</pre>
<p>我有:</p>
<pre class="brush:php;toolbar:false;"><ul className="category">
{this.state.categories.map((item,index) =>
<li onClick={()=>this.filterCategory(item,index)} key={item.id} className={item.selected? 'active' : ''}>{item.name}< /li>
)}
</ul></pre>
<p>我的filterCategory函數:</p>
<pre class="brush:php;toolbar:false;">filterCategory(item,index) {
this.state.categories[index].selected = !this.state.categories[index].selected;
this.forceUpdate();
}</pre>
<p>你知道我怎麼在不使用<code>forceUpdate()</code>的情況下實現它嗎?我在Stack上讀到應該避免使用<code>this.forceUpdate()</code>。 </p>