为了账号安全,请及时绑定邮箱和手机立即绑定

从列表中删除项目后反应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 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信