javascript TypeError:无法读取未定义的属性(阅读'files')

igetnqfo  于 2022-10-30  发布在  Java
关注(0)|答案(3)|浏览(261)

我收到这个TypeError

TypeError: Cannot read properties of undefined (reading 'files')

无法找到解决方案。我的应用程序正在使用react,在处理setState挂接时出现此错误。

const handleCapImage = (event) => {
    setPostImage(event.target.files[0]);
  };

我称之为React的元素

<input
    type="file"
    id="file"
    ref={inputFile}
    style={{ display: "none" }}
    onChange={handleCapImage}
 />
envsm3lx

envsm3lx1#

event.target指的是事件来源的元素。event.currentTarget指的是eventListener所在的元素。我猜您的事件是冒泡到带有eventlistener的元素,所以您访问了错误的元素(因为我猜您需要eventListener所在的元素)

l5tcr1uw

l5tcr1uw2#

files是输入(HTMLInputElement)的属性,而不是事件的属性。
所以应该是event.currentTarget.files
还要确保您的输入实际上是type=“file”

编辑(现在有更多信息)

我看不出它有什么问题。请确保您没有在ref上做一些在文件存在之前触发更改的事情。它很便宜,但到目前为止,我建议您只添加

if(event.target && event.target.files) {
  setPostImage(event.target.files[0]);
} else {
  setPostImage(undefined);
}
vd8tlhqk

vd8tlhqk3#

inputFile.current.files[0]应该可以在处理函数位于组件内部的情况下工作。

相关问题