巨坑!!!
const [actorImage, setActorImage] = useState([])
const uploadProps = {
listType: "picture-card",
action: uploadFile(),
maxCount: 1,
fileList: actorImage,
headers: { Authorization: getAuthorization() },
// 原本是非常嗨皮的直接使用onChange监控状态
// 但fileList被控后,这个事件只会触发一次,巨坑
// 查资料后发现很对人和我一样,原因是useStatus不知道这个[]在变化,需要让他知道,所以每次都要通知
onChange: info => setActorImage([...info.fileList]),
onRemove: () => setActorImage([])
}
// 再使用副作用函数监控最新值,只能这样
useEffect(() => {
if (actorImage[0]) {
const res = actorImage[0].response;
if (res && res.code !== 0) {
message.warning(res.msg)
setActorImage([])
}
}
}, [actorImage])