typescript 无法使用setState正确更新状态

vlju58qv  于 2023-04-13  发布在  TypeScript
关注(0)|答案(1)|浏览(176)

我想运行下面的代码,让文件选择器输入一个文件,并将输入文件作为文件中的状态进行管理。但它会产生注解中所述的输出。我不知道原因。我应该如何解决这个问题?

const [file, setFile] = useState<File | null>(null);

const fileSelect = (event: ReactChangeEvent<HTMLInputElement>) => {
  if (event.target.files === null) { return ; }
  const f: File | null = event.target.files[0];
  console.log(typeof(f)); // <- object
  setFile(f);
  console.log(f); // <- null
}

return (
<div className="flex px-1">
<input
  onChange={fileSelect}
  type="file"
/>
</div>
);
iqih9akk

iqih9akk1#

这是因为当你调用setState时,它不会立即改变状态。

相关问题