我使用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>
)
1条答案
按热度按时间lg40wkob1#
您将saveImages设置为包含“内容”,但您想要的是将“内容”添加到现有的saveImages数组中。
您可以在react中了解有关state的所有信息