fix(frontend): resolve all eslint errors to zero (B1)
This commit is contained in:
@@ -28,10 +28,17 @@ export default function PdfReader({ book, initialLocator, initialPercent }: Read
|
||||
const [err, setErr] = useState("");
|
||||
const [nonce, setNonce] = useState(0); // 仅加载重试
|
||||
const [redraw, setRedraw] = useState(0); // 仅 resize 重绘(不重新下载文档)
|
||||
// 重新加载(换书/重试)时先清错误:React 官方推荐的「渲染期按下发 key 重置本地 state」,
|
||||
// 替代原先 effect 内的同步 setState(级联渲染);首挂载 key 相等,重置为空操作,行为等价
|
||||
const loadKey = (book.file_url ?? "") + "#" + nonce;
|
||||
const [prevLoadKey, setPrevLoadKey] = useState(loadKey);
|
||||
if (prevLoadKey !== loadKey) {
|
||||
setPrevLoadKey(loadKey);
|
||||
setErr("");
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
let dead = false;
|
||||
setErr("");
|
||||
(async () => {
|
||||
const buf = await apiRaw(book.file_url ?? "").then((r) => r.arrayBuffer());
|
||||
if (dead) return;
|
||||
|
||||
Reference in New Issue
Block a user