検索

ホームページ  >  に質問  >  本文

状態を更新するときに React コンポーネントが再レンダリングされない

<p>この問題にはもっと良い解決策があると思います: 私の猫オブジェクトの配列を含むファイルがあります: </p> <pre class="brush:php;toolbar:false;">var category = [ { 「id」: 1、 "名前" : "工場", 「選択済み」: false }、 { 「id」: 2、 "名前" : "電話", 「選択済み」: false }、 { 「id」: 3、 "名前" : "コンピュータ", 「選択済み」: false }、 { 「id」: 4、 "名前" : "ラチュンコウォシュク", 「選択済み」: false }、 { "id": 5、 "名前" : "フィナンセ", 「選択済み」: 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[インデックス].selected = !this.state.categories[インデックス].selected; this.forceUpdate(); }</pre> <p><code>forceUpdate()</code> を使用せずにこれを実装する方法を知っていますか? Stack で <code>this.forceUpdate()</code> の使用は避けるべきだと読みました。 </p>
P粉277464743P粉277464743453日前459

全員に返信(2)返信します

  • P粉001206492

    P粉0012064922023-08-21 09:33:19

    ステータスを直接変更しないでください

    setState メソッドを使用して状態を変更します。

    返事
    0
  • P粉638343995

    P粉6383439952023-08-21 09:06:42

    setState を使用すると、自動的に再レン​​ダリングがトリガーされるため、状態を直接変更せず、setState を使用して状態を更新します。 リーリー

    ドキュメントによると:

    返事
    0
  • キャンセル返事