第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么回調(diào)后組件不重新渲染?

為什么回調(diào)后組件不重新渲染?

慕村9548890 2022-12-02 15:46:27
鑒于以下兩個組件,我希望 EntryList 組件在單擊 EntryForm 中的按鈕后 handleEnttryDelete 中的狀態(tài)發(fā)生變化后重新呈現(xiàn)。當(dāng)前狀態(tài)發(fā)生變化,但 UI 并未自行更新:import React, { useState } from "react";import Button from "@material-ui/core/Button";import { render } from "@testing-library/react";const EntryList = (props) => {  const [entryList, setEntryList] = useState(props.data);  const handleEntryDelete = (entry) => {    const newState = entryList.filter(function (el) {      return el._id != entry._id;    });    setEntryList(() => newState);  };  return (    <div>      {entryList.map((entry) => {        return (          <EntryForm entry={entry} handleEntryDelete={handleEntryDelete} />        );      })}    </div>  );};const EntryForm = (props) => {  const [entry, setEntry] = useState(props.entry);  return (    <div>      <Button onClick={() => props.handleEntryDelete(entry)}>        {entry._id}      </Button>    </div>  );};export default EntryList;
查看完整描述

1 回答

?
哆啦的時光機(jī)

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個贊

您的代碼可能有效,但不是預(yù)期的那樣。您只需要key在將數(shù)組映射到組件時使用。


因此,當(dāng)您刪除其中一個節(jié)點(diǎn)時,React 可以在協(xié)調(diào)期間區(qū)分哪些元素不應(yīng)被觸及


<div>

  {entryList.map((entry) => {

    return <EntryForm key={entry._id} entry={entry} handleEntryDelete={handleEntryDelete} />;

  })}

</div>;


查看完整回答
反對 回復(fù) 2022-12-02
  • 1 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號