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} />
))}
添加回答
舉報