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

如何从函数组件中的数组中删除图像

如何从函数组件中的数组中删除图像

皈依舞 2023-09-21 10:43:35
handleRemoveImgButn 应该删除第一个图像,但是当我单击handleRemoveImgButn 时,图像不会从 DOM 中删除。我还尝试了 setImgs((prevImgs) => prevImgs.filter(img => prevImgs.indexOf(img) !== 0,但它不起作用。下面是代码。提前感谢您的帮助。import React, { useState, useEffect } from "react";import "./styles.css";import AddImgButn from "./AddImgButn";import RemoveImgButn from "./RemoveImgButn";export default function App() {  const [imgs, setImgs] = useState([]);    const handleAddImgClick = () => {    fetchId();  };  const handleRemoveImgClick = () => {    setImgs((prevImgs) => prevImgs.splice(1));  };  return (    <>      <h1>Catt</h1>      <div>        <AddImgButn onClick={handleAddImgClick} />        <RemoveImgButn onClick={handleRemoveImgClick} />      </div>      <div>        {imgs.map((img, i) => (          <img key={i} src={img} className="cat" alt="cat" />        ))}      </div>    </>  );}
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

发生这种情况是因为splice更改了旧数组

然后useEffect没有检测到它和新的之间的变化

你可以slice使用

 const handleRemoveImgClick = () => {
     setImgs((prevImgs) => prevImgs.slice(1));
  };


查看完整回答
反对 回复 2023-09-21
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

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