typescript 对 setState 与用户输入进行反应

2024-04-09

在这个打字稿反应(create-react-app)的基本示例中,我试图通过用户输入更改state.name。

有人可以向我展示一个工作示例(我没有找到)或更好的示例:文档在哪里?

linter 的(第二个)错误是:

(54,24): 错误 TS2322: 类型 '{ onChange: (e: Event) => void; }' 不是 可分配给类型 '详细的HTML属性, HTMLInputElement>'.输入 '{ onChange: (e: Event) => void; }' 不是 可分配给类型“InputHTMLAttributes”。 属性“onChange”的类型不兼容。 类型“(e: Event) => void”不可分配给类型“EventHandler> |”不明确的'。 类型“(e: Event) => void”不可分配给类型“EventHandler>”。 参数“e”和“event”的类型不兼容。 类型“ChangeEvent”不可分配给类型“Event”。 “ChangeEvent”类型中缺少属性“cancelBubble”。

import * as React from 'react';
import './Hello.css';

interface Props {
    name: string;
}

interface State {
    name: string;
}

class Hello extends React.Component<Props, State> {

public static defaultProps = {
    name: 'John',
};

constructor(props: Props) {
    super(props);
    this.state = {
        name: props.name,
    };
    this.handleChange = this.handleChange.bind(this);
}

handleChange(e: Event): void {
    this.setState({
        name: e.target.value //Error : property 'value' does not exist on type 'EventTarget'
    });
}

render(): JSX.Element {
    return (
        <div className="hello">
            Hello {this.state.name}
            <input onChange={(e: Event) => this.handleChange(e)} /> //error is at this line
        </div>
      );
   }
}

export default Hello;

改变你的

handleChange(e: Event)

with

handleChange (e: React.FormEvent<HTMLInputElement>)

and

e.target.name;

with

e.currentTarget.name;

另外,您可能想要更改

 <input onChange={(e: Event) => this.handleChange(e)} />

with

 <input onChange={this.handleChange} />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

typescript 对 setState 与用户输入进行反应 的相关文章

随机推荐

  • `checkout -B` 与 `symbolic-ref`

    以下命令等效吗 如果不是 有什么区别 git checkout B a branch and git branch f a branch HEAD git symbolic ref HEAD refs heads a branch 也可以看
  • checkboxGroupInput - 设置最小和最大选择数 - 刻度

    以下是带有复选框组输入的示例代码 library shiny server lt function input output output Selected lt renderText paste input SelecetedVars c
  • 日期自然语言解析器(.NET)?

    我希望能够让用户使用自然语言 例如 下周五 每个工作日 输入日期 包括重复日期 很像以下的例子http todoist com Help timeInsert http todoist com Help timeInsert I found
  • RecyclerView 中的共享元素转换

    我试图在 RecyclerView 上使用共享元素转换 但它似乎不起作用 这是我使用的适配器的一部分makeSceneTransitionAnimation public void onBindViewHolder final BookVi
  • Safari ITP 2.0 存储访问 API - 在 hasStorageAccess 中嵌套 requestStorageAccess 时出现问题 - 非嵌套工作

    我目前正在尝试实现调用存储访问 API 但在将 requestStorageAccess 的调用嵌套在 hasStorageAccess 中时遇到问题 这是代码的概要 它相当标准 requestStorageAccessAndServe l
  • 如何在 Haml 中撤消 Rails 模板生成?

    我在 Rails 项目中安装了一个新的 gem phrasing 它对多个 Haml gem 具有 gem 依赖性 我需要 gem 它为我的项目添加了一些惊人的功能 并且需要安装依赖项 但是现在当我运行rails generate scaf
  • Slick - 更新完整对象或超过 22 列

    我有一张桌子user permissions其中有 46 个权限列以及id and created date 这个表有对应的UserPermissions class class UserPermission val id Long val
  • C# 中 anagram 函数的实现

    可能的重复 有什么简单的方法可以判断单词列表是否是彼此的字谜 https stackoverflow com questions 522112 what is an easy way to tell if a list of words a
  • SOLR 权限/根据访问权限过滤结果

    例如 我有文档 A B C 用户 1 必须只能看到文档 A B 用户 2 必须只能看到文档 C 是否可以在 SOLR 中执行此操作而不通过元数据进行过滤 如果我使用元数据过滤器 每次访问权限发生变化时 我都必须重新索引 2012 年 2 月
  • Spring 注入 - 访问构造函数中注入的对象

    我有一个资源 Spring bean 它的一些字段是由 Spring 注入的 例如 Repository value appDao public class AppDaoImpl implements AppDao PersistenceC
  • 有没有办法将 __len__ 或 __eq__ 等方法实现为类方法?

    它很容易实现 len self Python 中的方法 以便它处理len inst 像这样的调用 class A object def len self return 7 a A len a gives us 7 您可以定义很多类似的方法
  • 在时尚中排除网站的子文件夹?

    有没有办法使用 Stylish 排除网站的子文件夹 moz document domain www website com 将会影响 website com 的所有页面 问题是 这个网站还托管一个维基 www website com wik
  • 如何在我的网站上显示我的 Instagram feed?

    我有一个网站 可以显示我的 Instagram 动态 以前我用过 Instagram 遵循 API 用户 自我 媒体 最近 这个 API 使用的是我生成的一次访问令牌 并将其作为变量保存在我的代码中 并且很长一段时间 2 3 年 都没有更改
  • 在 Javascript 中将小数金额转换为文本字符串分数?

    我有一个以数字形式返回的值 可以是十进制数 例如 1 15 但是 我需要格式化所有数字在一个范围内到给定的分数 例如 所有大于 0 但小于 0 2 的数字我想返回 1 8 我已经开始将其作为一系列 if else 语句来执行此操作 但我想知
  • DTO 接口

    我目前正在开始开发一个大型 Web 应用程序 主要包含 Angular SPA 和可以访问后端层的 OData WebAPI 我们正处于早期阶段 并已开始实施第一批课程 包括Model dll它位于公共名称空间中 以便所有层都可以访问它 我
  • Prometheus:如何根据 Consul 标签删除目标

    我的 Prometheus 服务器从 Consul 获取其目标列表 或 服务 用 Consul 的行话来说 我只想监视这些目标的子集 这应该可以通过普罗米修斯的正则表达式机制实现 但我无法正确配置 这是怎么做到的 我已经搜索过网络 但没有一
  • 如果原始值与任何when_表达式都不匹配,则返回原始值

    我的 SQL 导出字段上有一行 并且我试图删除字段中返回的空白值 如果它与姓氏中的 AMA 完全匹配 但是 当我使用当前代码导出文件时 姓氏不带 AMA 的名称将被完全删除 Max Orders ShipFirstName CASE Ord
  • 如何在不编写 20 个 if 语句或创建 20 个列表/字典的情况下进行以下比较?

    这个问题与生物学有关 所以对于那些知道氨基酸和密码子是什么的人来说 那就太棒了 对于那些不明白的人 我已尽力表述 以便您能够理解我在说什么 所以我有一个密码子列表 也可以称为3字母字符串 由以下四个字母的组合组成 A G C T 即AAT
  • 如何使用 jQuery 设置输入框的默认值?

    我想更改输入框的默认值 以便在重置表单时保留该值 我有以下代码 它使用 jQuery 设置一个值 但当按下重置时 该值将变为初始值
  • typescript 对 setState 与用户输入进行反应

    在这个打字稿反应 create react app 的基本示例中 我试图通过用户输入更改state name 有人可以向我展示一个工作示例 我没有找到 或更好的示例 文档在哪里 linter 的 第二个 错误是 54 24 错误 TS232