fix(frontend): resolve all eslint errors to zero (B1)
This commit is contained in:
@@ -38,10 +38,17 @@ function PageImg({ url, width, onLoaded }: { url: string; width: number; onLoade
|
||||
const [src, setSrc] = useState("");
|
||||
const [failed, setFailed] = useState(false);
|
||||
const [nonce, setNonce] = useState(0);
|
||||
useEffect(() => {
|
||||
let dead = false;
|
||||
// url/nonce 变化时先落回占位态:React 官方推荐的「渲染期按下发 key 重置本地 state」,
|
||||
// 替代原先 effect 内的同步 setState(级联渲染);换页/重试时的表现与原先一致
|
||||
const key = url + "#" + nonce;
|
||||
const [prevKey, setPrevKey] = useState(key);
|
||||
if (prevKey !== key) {
|
||||
setPrevKey(key);
|
||||
setSrc("");
|
||||
setFailed(false);
|
||||
}
|
||||
useEffect(() => {
|
||||
let dead = false;
|
||||
fetchObjectUrl(url)
|
||||
.then((s) => !dead && setSrc(s))
|
||||
.catch(() => !dead && setFailed(true));
|
||||
|
||||
Reference in New Issue
Block a user