我正在学习event.target和event.currentTarget。我想我很清楚两者之间的区别。event.currentTarget但陷入了价值为零的境地。
以下是 HTML 和 JS 代码片段:
HTML代码
<form id="form">
This is a form
</form>
Run Code Online (Sandbox Code Playgroud)
JavaScript 代码
form.addEventListener('click', func);
function func(event) {
console.log(event.target.tagName); //line1
console.log(event.currentTarget.tagName); //line2
setTimeout(()=> {
console.log(event.target.tagName); //line3
console.log(event.currentTarget.tagName); //line4
}, 0) ;
}
Run Code Online (Sandbox Code Playgroud)
我的疑问是,在第 1 行和第 3 行中我得到了event.target相同的值。event.currentTarget但是line2和line4的值是有区别的。
第 3 行的输出是“form”,但第 4 行的输出是:
未捕获的类型错误:无法读取 null 的属性“tagName”。
这意味着currentTargetline4 中为 null。
你能解释一下为什么 的值currentTarget在null第 4 行吗?
我使用vite创建了 React 项目。
In viteimport.meta.env.VITE_SOME_RANDOM_ENV_VARIABLE用于访问项目中任何位置的环境变量。
例如下面第 12 行的代码。
但我的问题是,当我尝试访问vite.config.ts文件中的环境变量时,出现以下错误。
Property 'env' does not exist on type 'ImportMeta'
Run Code Online (Sandbox Code Playgroud)
我还添加了下图来显示错误。
您能解释一下为什么vite.config.ts文件中的行为不同吗?我还在下面添加了 importMeta.d.ts 文件的代码供您参考。
我在这里得到了解决方案,但是您仍然可以解释为什么文件中的行为不同吗vite.config.ts?