redux 将所有点击内容保存到初始状态为数组

pobjuy32  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(127)

我使用usestate创建saveImages和setSaveImages,初始值为数组,我想每次调用函数时,内容都是不同的,所以每次都必须将信息推送到数组中,但不是推送,而是只替换数组中的1个位置,而不是添加具有不同信息的新位置。我不知道我是否解释了自己

const galery = useSelector((state) => state.search);
  const dispatch = useDispatch();
  const [saveImages, setSaveImages] = useState([]);

function savePhoto(e) {
    e.preventDefault();
    const { target } = e;
    const content = target.photo.src;
    setSaveImages(content)
    console.log(content)
    localStorage.setItem("img", saveImages);
    dispatch(actionAddFavorite(content));
  }

return(
<section className="w-full gap-0 sm:columns-2 md:columns-3 xl:columns-4 2xl:columns-5 3xl:columns-6">
        {galery.map((item, index) => {
          return (
        

<form onSubmit={savePhoto} key={index} className="relative">
          <button className="bg-gray absolute left-5 top-3 shadow-md">
            Guardar
          </button>
          <img
            name="photo"
            className="object-cover p-2"
            src={item.urls.regular}
            alt={item.alt_description}
          />
        </form>
      );
    })}
  </section>
)
lg40wkob

lg40wkob1#

您将saveImages设置为包含“内容”,但您想要的是将“内容”添加到现有的saveImages数组中。

setSaveImages(oldImages => {
  return [...oldImages, content];
});

您可以在react中了解有关state的所有信息

相关问题