我收到这个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}
/>
3条答案
按热度按时间envsm3lx1#
event.target
指的是事件来源的元素。event.currentTarget
指的是eventListener所在的元素。我猜您的事件是冒泡到带有eventlistener的元素,所以您访问了错误的元素(因为我猜您需要eventListener所在的元素)l5tcr1uw2#
files是输入(HTMLInputElement)的属性,而不是事件的属性。
所以应该是
event.currentTarget.files
还要确保您的输入实际上是type=“file”
编辑(现在有更多信息)
我看不出它有什么问题。请确保您没有在ref上做一些在文件存在之前触发更改的事情。它很便宜,但到目前为止,我建议您只添加
vd8tlhqk3#
inputFile.current.files[0]
应该可以在处理函数位于组件内部的情况下工作。