类型错误:无法读取 null 的属性“名称”

2024-04-26

我有一个用户对象,他们可以在其中编辑他们的信息(电话号码、电子邮件等)

我无法访问输入name在 - 的里面setState回调并继续获取TypeError: Cannot read property 'name' of null

但是当我登录时event.target.name它显示在那里。

当我更改一个简单的状态时,它会起作用:

假设状态值与目标名称相同。

this.setState({ [event.target.name]: value });

我正在关注this https://stackoverflow.com/questions/43638938/updating-an-object-with-setstate-in-reactpost 更新用户对象。

抱歉,如果这是重复的,我找不到我要找的东西。

  handleUserChange(event) {
    console.log(event.target.name);
    const value = event.target.value
    this.setState(prevState => ({
      user: {...prevState.user, [event.target.name]: value }
    }))

  }

编辑:我在类构造函数中正确绑定它,如下所示:

contructor(props) {
    super(props);
    ...
    this.handleUserChange = this.handleUserChange.bind(this)
}

React 正在回收这个事件。所以异步调用setState不会知道的价值事件.目标.名称因为事件已经过去了。您需要复制该值,就像您所做的那样事件.目标.值.

 handleUserChange(event) {
    console.log(event.target.name);
    const name = event.target.name;
    const value = event.target.value;
    this.setState(prevState => ({
      user: {...prevState.user, [name]: value }
    }))

  }

来自文档:link https://facebook.github.io/react/docs/events.html#event-pooling

其他解决方案:

handleUserChange(event) {
    event.persist();
    const value = event.target.value;
    this.setState(prevState => ({
      user: {...prevState.user, [event.target.name]: value }
    }))

  }

坚持事件的价值观。

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

类型错误:无法读取 null 的属性“名称” 的相关文章

  • 检查所有子组件是否已安装

    有什么办法可以检测孩子是否已经挂载了吗 当我初始化同位素时 必须安装所有子组件才能初始化 超时时间为 5 毫秒 它按预期工作 但我确信有更好的方法 componentDidMount function var container this
  • 为什么这个对象的“forEach 不是函数”?

    这可能真的很愚蠢 但我不明白为什么这不起作用 var a cat large a forEach function value key map console log value 未捕获的类型错误 a forEach 不是函数 http j
  • 如何将文本插入摩纳哥编辑器?

    我的应用程序中嵌入了摩纳哥代码编辑器 如何以编程方式在特定行上插入文本 var editor monaco editor create document getElementById container value First line n
  • 通过 HTML 将复杂变量传递给 javascript 的正确方法

    我试图摆脱使用 PHP 的 htmlentities 但我在这里停止了 但后来我想 我不做替换和检查特殊字符 而是只 JSON 整个对象 这提供了一个非常不受欢迎的结果 其中包含大量双引号 那么我应该怎么做呢 我应该为每个图像分配一个数字唯
  • 如何为谷歌材料条形图制作动画

    我正在反应项目中绘制反应谷歌条形图 材料图表 并且我正在尝试制作动画 我读过这种图表不支持动画 但我需要这样做 必须有任何方法可以做到这一点 我很难认为新的东西比旧的东西更糟糕 有人知道我该怎么做吗 我尝试了很多不同的方法 但没有任何效果
  • 带标签的 Material-ui 文本字段[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 谁能告诉我如何在material ui lib中制作带有标签的文本字段 寻找这样的东西 https github com callem
  • 提交后如何重置表单?

    我有一个简单的表格 假设它需要一个电子邮件地址 提交表单后 消息堆栈会通知用户其地址已成功提交 问题是 提交地址后 带有电子邮件的表单字段仍然包含用户输入的电子邮件地址 我该如何重置该字段 我必须为此使用 JavaScript 吗 谢谢 w
  • 我可以在 Express POST 请求中进行 DOM 操作吗?

    我正在使用基本的 HTML CSS 前端 目前有一个登陆页面 上面有一个表单 可将 一些数据发送到数据库 当请求完成后 它期待某种响应 在这种情况下 我正在重新渲染页面 但是 我想用某种感谢消息替换表单 以便用户知道它已正确发送 我尝试过简
  • 在 Javascript 中按日期对数组进行排序

    我在用着sort 按日期排序数组 elements data sort function a b return a date getTime b date getTime 问题是某些元素缺少日期 或日期无效 这导致了这个错误 无法读取属性
  • $index 中的 AngularJS 数字

    举例来说 我有以下代码 伪 div index div 结果将是 1 2 3 4 5 6 我怎样才能改变上面的代码以便打印索引 001 002 003 004 005 006 以便索引打印为 3 位数字 您可以使用过滤器轻松完成此操作 首先
  • 在 AMP 中包含自定义 JavaScript 的最佳方式

    我阅读了有关脚本标记的所有文档 但找不到如何在 AMP HTML 中包含自定义 JavaScript 我知道
  • 有没有办法防止 neDB 集合数组中的条目重复?

    var addNewUser function id chatId db update id id push users chatId function err numAffected code after the record is up
  • 是否存在必须在 HTML/JavaScript 中使用早期绑定/内联事件属性的情况

    在我对以下问题的回答中 事件绑定是什么意思 https stackoverflow com q 6329996 144491 我顺便说一下 使用 inline JavaScript Early Binding 来绑定 JavaScript
  • 我可以使用 javascript 生成 JSON 文件吗?

    我想在域 example1 com 上创建一个页面 并获取 解析另一个域 example2 com json json 上的 JSON 文件 可以使用 javascript 生成 json 文件 在 example2 com 上 吗 我认为
  • 如何判断CKEditor是否已加载?

    如何确定 CKEditor 是否已加载 我查看了API文档 但只能找到loaded事件 我想检查 CKEditor 是否已加载 因为如果我第二次加载它 我的文本区域就会消失 The loaded活动对我不起作用 instanceReady
  • 添加 sigma.js 导航按钮

    我是 javascript 和 sigma js 的新手 我试图让导航按钮在画布中向上 向下 向左 向右滚动 就像发现的那样here http jcml fr jacomyal osdc2012 demo 到目前为止 我有一个简单的例子 我
  • 如何获取元素相对于当前屏幕位置的偏移量?

    我正在尝试用纯 Javascript 重构所有 jQuery 除了非常具体的值之外 一切都正常工作 根据此代码的浏览器供应商 我得到了不同的值 对于 jQuery 我会使用 var topSelected figure offset top
  • 包括来自raw.github.com的js

    我有一个 github com 演示页面 链接到https raw github com master file js https raw github com master file js这样我就不需要总是复制 js文件转移到gh pag
  • jQuery() 与 jQuery.parseHtml() 空格语法错误

    我有一行 javascript 导致 jQuery 中出现语法错误 document find Container replaceWith data find Content 代码本身如果相当无害的话 它所做的只是从 ajax 调用获取响应
  • ReactJS 无效校验和

    尝试使用 ReactJS 和 Node js 进行服务器端渲染时 我不断收到以下错误 React attempted to use reuse markup in a container but the checksum was inval

随机推荐

  • 将反应路由器与反应门户一起使用?

    我正在实现一个带有大量表的应用程序 可以与react router完美配合 读取URL查询等 现在我需要将其中一个表放入模式中 我正在使用AntUI模态 https ant design components modal 用于此目的的组件
  • 如何 UPSERT(更新或插入表?)

    UPSERT 操作更新或插入表中的行 具体取决于表是否已有与数据匹配的行 if table t has a row exists that has key X update t set mystuff where mykey X else
  • 如何在 Shiny 中获得一个按钮来并行调用 JavaScript 和 R 代码?

    我在 Shiny 中有一个 HTML 按钮 单击该按钮时会调用 JavaScript 函数geocodeAddressStreet in a js文件在 www目录 tags body tags input type button valu
  • 如何在 JQuery 中伪造 AJAX 开始/结束事件?

    我正在听 ajaxStart 和 ajaxStop 来显示 隐藏微调器 并且在编写服务器时我正在 JS 中执行一些模拟 AJAX 操作 它只是调用一个函数来使用 setTimeout 生成模拟数据 现在我只是在微调器上手动调用 hide 和
  • 当站点位于网络驱动器时,IE 无法正确渲染 CSS

    这是我们和我的朋友遇到的一个奇怪的问题 我们将网站定位在网络驱动器上 并尝试从那里打开它 所有其他浏览器都能很好地呈现此页面 但 IE 顺便说一句 为什么它总是 IE 无法理解 inline block 语句 但如果我将文件复制到本地驱动器
  • 是否可以通过括号来防止死亡?

    有时 我会编写一些带有比我喜欢的更多括号的代码 if new Day new Date millisecondsPerDay 75 instanceof oldDay Bonus points if that condition made
  • 为树视图创建 Qt 模型

    我正在用 Qt 使用 C 编写一个应用程序 我需要在树视图中表示一个对象结构 实现此目的的方法之一是为此创建一个模型 但在阅读有关该主题的 Qt 文档后我仍然很困惑 我的 结构 非常简单 有一个Project持有的物体Task中的对象std
  • 批量插入期间 SQL Server 表锁

    下面是示例查询 考虑 A INSERT INTO Target Col1 Col2 Col3 Col4 Statement 1 Select A Col1 B Col2 A Col3 C Col4 Statement 2 FROM A WI
  • 如何在 WordPress 中创建“路线”?

    为了我自己的理智 我正在尝试为 ajax api 创建一条路由 如下所示 api
  • Unix shell 之间的可移植性 - 我是否正确地考虑了这个问题?

    每当我编写 shell 脚本 主要是软件开发实用程序或构建工具 时 我通常都会尝试避免使用 bash 而倾向于使用普通的旧 sh 来实现可移植性 然而最近我遇到了越来越多的问题 其中有用的功能不可用 或者使用 sh 的系统之间的行为实际上不
  • 节点命令不起作用[重复]

    这个问题在这里已经有答案了 我正在使用 ubuntu 14 04 当我在终端上使用 node hello js 命令时 没有任何反应 我使用 sudo apt get 命令安装了软件包 我不知道出了什么问题 没有错误消息或任何东西 我搜索了
  • 在matplotlib中,如何绘制多色线,如彩虹

    我想用不同的颜色绘制平行线 例如 我想要两条厚度为 3 的平行线 一红一蓝 而不是一条粗细为 6 的红线 任何想法将不胜感激 Merci 即使使用智能偏移 见下文 连续点之间存在锐角的视图中仍然存在问题 Zoomed view of sma
  • Maven依赖冲突

    在我的项目中 有2个库 每个库都依赖于XML解析类java xml parsers DocumentBuilderFactory 这些库中的每一个都引用来自不同 jar 的文件 一个从名为 xmlParserAPIs 的 jar 获取它 而
  • C++ 中的跨平台原始数据类型

    与 Java 或 C 不同 C 中的原始数据类型的大小可能因平台而异 例如 int不保证是 32 位整数 各种编译器环境定义数据类型 例如uint32 or dword为此目的 但似乎没有固定大小数据类型的标准包含文件 实现最大可移植性的推
  • 如何避免在 Scala 中使用 asInstanceOf

    目前我的代码需要类转换 val dataWriter BytesDataWriter createDataWriter def createDataWriter p SomeClass p create datawriter asInsta
  • 带有对象的 Javafx 可编辑组合框

    我刚刚开始学习 Java Fx 我有一个装满物体的组合框 我处理了 toString 方法 我可以看到我想要在屏幕上显示的名称 但现在我想让它可编辑 用户将输入自己的文本 ComboBox 将创建一个新对象并将该文本放入正确的字段中 我知道
  • re.findall结果的顺序有保证吗?

    返回的匹配列表是否为re findall总是与源文本中的顺序相同 是的 正如中所述re module docs https docs python org 2 library re html module contents 以字符串列表的形
  • 可以在子例程中使用模块吗?

    最近 我开始使用 OO Perl 并且为我正在开发的新项目创建了很多新对象 因为我不熟悉有关 OO Perl 的任何最佳实践 所以我们很急于完成它 P 我将大量此类代码放入每个函数中 sub funcx use ObjectX i don
  • “在捆绑 NSBundle 中找不到名为“MainStoryboard”的故事板”

    我已经在一个应用程序上工作了很长时间 突然我得到了这个 在捆绑包中找不到名为 MainStoryboard 的故事板 NS捆绑 我已经在 StackOverflow 上红色了类似的问题 并且我尝试了所有方法 包括 重命名故事板文件 重新添加
  • 类型错误:无法读取 null 的属性“名称”

    我有一个用户对象 他们可以在其中编辑他们的信息 电话号码 电子邮件等 我无法访问输入name在 的里面setState回调并继续获取TypeError Cannot read property name of null 但是当我登录时eve