Die React-Komponente wird beim Aktualisieren des Status nicht erneut gerendert
P粉277464743
2023-08-20 10:08:52
<p>Ich denke, Sie haben eine bessere Lösung für dieses Problem:
Ich habe eine Datei, die ein Array meiner Katzenobjekte enthält: </p>
<pre class="brush:php;toolbar:false;">var columns = [
{
„id“: 1,
„Name“: „Faktur“,
„ausgewählt“: falsch
},
{
"id": 2,
"name" : "Telefony",
„ausgewählt“: falsch
},
{
"id": 3,
„Name“: „Komputery“,
„ausgewählt“: falsch
},
{
"id": 4,
„Name“: „Rachunkowośc“,
„ausgewählt“: falsch
},
{
"id": 5,
„Name“: „Finanzen“,
„ausgewählt“: falsch
}
];</pre>
<p>Ich habe: </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>Meine filterCategory-Funktion:</p>
<pre class="brush:php;toolbar:false;">filterCategory(item,index) {
this.state.categories[index].selected = !this.state.categories[index].selected;
this.forceUpdate();
}</pre>
<p>Wissen Sie, wie ich dies implementieren kann, ohne <code>forceUpdate()</code> zu verwenden? Ich habe auf Stack gelesen, dass die Verwendung von <code>this.forceUpdate()</code> vermieden werden sollte. </p>
不要直接修改状态
使用setState方法进行状态更改。
使用
setState
会自动触发重新渲染,所以不要直接修改状态,而是使用setState
来更新状态。根据文档: