亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

從列表中刪除項目后反應js無法正確呈現

從列表中刪除項目后反應js無法正確呈現

幕布斯6054654 2022-10-13 19:34:02
我正在嘗試從 React js 的列表中刪除單擊項目。但我點擊刪除按鈕,它從列表中刪除最后一項,而不是我點擊的那個。如果我簽入 console.log 它會顯示正確的輸出,但不能正確呈現。我試圖以許多不同的方式刪除項目。這是我的 poroject 的代碼框鏈接 https://9o0jw.csb.app/ 我不知道我做錯了什么這是我的代碼片段{projects &&            projects.map((project, key) => (              <div                key={`editProject-${key}`}                className="d-sm-flex justify-content-between align-items-center mb-2"              >                <div className="flex-sm-fill">                  <div className="project-input-field">                    <input type="text" defaultValue={project.title} />                  </div>                  <div className="project-input-field">                    <input type="url" defaultValue={project.link} />                  </div>                </div>                <div className="remove-project">                  <button onClick={() => removeProject(project.title)}>                    Remove Projoect                  </button>                </div>              </div>            ))}這是刪除功能 const removeProject = title => {    // let newProjects = projects;    // newProjects = newProjects.filter(project => project.title !== title);    // setProjects(newProjects);    setProjects(prevProject => {      return prevProject.filter(pro => pro.title !== title);    });  };
查看完整描述

1 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

我會看一下key={`editProject-${key}`}-您正在使用數組索引,因此 react 認為刪除的鍵是重新渲染時的最后一個索引。如果project.title是唯一的,則將其用作key.

但是,如果project.title不是唯一的,則在創建 aid時尋找創建唯一的project。

更多信息https://reactjs.org/docs/lists-and-keys.html


查看完整回答
反對 回復 2022-10-13
  • 1 回答
  • 0 關注
  • 80 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號