reactjs - 类型“EventTarget & HTMLInputElement”.ts(2339) 上不存在属性“值”
问题描述
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { value } = e.target;
setUserName(value)
}
这是我的 handleChange 函数,第一次在 react 中编写 typescript。我想知道为什么我在 vs 代码中得到以下内容:
Property 'value' does not exist on type 'EventTarget & HTMLInputElement'.ts(2339)
一切正常,但这不会消失。
编辑:首先,感谢您分享该备忘单!肯定是一个很大的帮助!
这是整个文件:
import React, { useState } from "react";
const App: React.FC = () => {
const [userName, setUserName] = useState("");
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { value } = e.target;
setUserName(value);
};
return (
<div>
<form>
<input
type="text"
placeholder="username"
value={userName}
onChange={handleChange}
/>
</form>
</div>
);
};
export default App;
我试图直接在 onChange 道具中删除句柄更改并退出函数,但问题仍然存在。
我的 tsconfig.json 可能有问题吗?我只是使用 CRA 的默认配置
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react"
},
"include": [
"src"
]
}
再次感谢
解决方案
这里是 React 和 TypeScript 社区的朋友...
根据您提供的信息,很难说出 TypeScript 为何会抱怨。我整理了一个 CodeSandbox 来证明我没有看到同样的错误。
更新
感谢您添加文件以获取更多上下文。一切看起来都很好,包括你的tsconfig.json
. 你有没有@types
安装 React 的包,即
"@types/react": "^16.9.0",
"@types/react-dom": "^16.9.0",
这是唯一想到的另一件事。如果这不能解决问题,您能否包含指向 repo 或 CodeSandbox 的链接,并重现错误?然后我可以仔细看看。
第一次在反应中写打字稿
react-typescript-cheatsheet
如果您还没有,我建议您检查一下。当您不熟悉在 React 中编写 TypeScript 时,这是一个很棒的参考。
推荐阅读
- excel - Excel VBA复制匹配条件单元格并根据不同工作表中的条件粘贴到特定单元格中
- javascript - Javascript替换字符串中的多个字符无法按预期工作
- css - Safari 浏览器的底部边框渐变支持
- laravel - 使用laravel和vue js的多个文件上传错误不打印
- java - Kafka 流聚合:如何忽略 Window 的中间聚合结果
- python - CSRF 令牌在运行时延长令牌到期时间
- google-cloud-platform - 从谷歌存储中的多个文件夹创建多个 bigquery 表
- r - 如何在 Shiny 中将 titlePanel 居中?
- neo4j - 在 HTTP API 中创建具有不同标签的 Neo4j 节点
- javascript - 如何在 Windows 上使用快速通道将 React Native iOS 应用程序部署到应用商店?