在next.js客户端组件中,我使用了cloudinary的“CldmenadButton”。在“onSuccess”事件中,我试图循环上传结果,拾取图像“secure_url”,然后将所有图像的状态分配给它们。由于某种原因,我收到了一个空数组。如果有人有更好的主意,我会很高兴。谢谢。
export default function AddPost({ userId }) {
const [images, setImages] = useState({});
return (
<div>
<form action={createPost} className="flex w-full">
<input type="hidden" name="userId" defaultValue={userId} />
<input type="text" name="title" placeholder="Title" />
<textarea
type="text"
name="content"
placeholder="Content"
className="p-8"
/>
<CldUploadButton
uploadPreset="bkklcz9f"
options={{
sources: ["local"],
multiple: true,
maxFiles: 4,
}}
onSuccess={(result) => {
let arr = [];
const imageCount = Object.keys(images).length;
for (let i = 0; i < imageCount; i++) {
const data = {
imageUrl: result[i].secure_url,
};
arr.push(data);
}
setImages(arr);
}}
/>
<input type="hidden" name="imageUrl" defaultValue={images} />
<input type="submit" value="Submit" />
</form>
</div>
);
}
字符串
1条答案
按热度按时间tpxzln5u1#
看看你的代码,我看到你在设置值之前就在迭代images.length,所以你的迭代的长度为零,应该是一个空数组。