1 回答

TA贡献1796条经验 获得超10个赞
问题是你正在改变状态。
.then(function (dataUrl) {
var img = new Image();
img.src = dataUrl;
console.log(dataUrl);
let newarray = files; // <-- reference to state
newarray.push(dataUrl); // <-- mutation
console.log(newarray); // <-- save same reference back to state
setfiles(newarray);
})
或更简洁
setfiles([...files, dataUrl]);
您应该创建一个新的数组引用
.then(function (dataUrl) {
var img = new Image();
img.src = dataUrl;
console.log(dataUrl);
const newarray = [...files]; // <-- spread existing state into new array
newarray.push(dataUrl); // <-- append new element
console.log(newarray);
setfiles([...files, dataUrl]); // <-- save new reference to state
})
这也是一条非常无用的线
const newspreadarray = [...files];
您可以简单地
{files.map((post, index) => (
//we can fiddle with sizes here :)
<img src={post} key={index} />
))}
添加回答
举报