- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这两个函数之间的主要区别是什么?
handleOnChange(evt) {
this.setState(() => ({
tickerName: evt.target.value
}));
}
handleOnChange(evt) {
this.setState({ tickerName: evt.target.value });
}
为什么使用直接更改状态的handleOnChange()函数可以正常工作?
<input
type="text"
value={this.state.tickerName}
onChange={(evt) => this.handleOnChange(evt)}
/>
当我使用第一个通过回调更改状态的函数时,我收到此错误:
TypeError: evt.target is null
最佳答案
这是两种不同的 setState 语法
第一:
handleOnChange(evt) {
this.setState(() => ({
tickerName: evt.target.value
}));
}
使用更新函数作为第一个参数。
第二:
handleOnChange(evt) {
this.setState({ tickerName: evt.target.value });
}
使用要更新的对象
在更新函数中使用合成事件时,您需要使用event.persist()
来自documentation :
the SyntheticEvent is pooled. This means that the SyntheticEvent object will be reused and all properties will be nullified after the event callback has been invoked. This is for performance reasons. As such, you cannot access the event in an asynchronous way.
If you want to access the event properties in an asynchronous way, you should call event.persist() on the event, which will remove the synthetic event from the pool and allow references to the event to be retained by user code.
你的第一个案例看起来像
handleOnChange(evt) {
evt.persist();
this.setState(() => ({
tickerName: evt.target.value
}));
}
或者您可以将事件存储在另一个对象中,而不是使用 event.persist()
handleOnChange(evt) {
const value = evt.target.value;
this.setState(() => ({
tickerName: evt.target.value
}));
}
P.S. 仅当您希望基于 prevState
或 props
更新当前状态时,才应使用 setState 的更新程序函数
<强> CodeSandbox
关于reactjs - TypeError : evt. 目标在功能 setState 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48807597/
代码如何 var charCode = (evt.which) ? evt.which : event.keyCode 可以解释吗?这里发生了什么?我只知道该子句将按钮值返回给对象 charCode。
嗨,这个 javascript 代码段是什么意思。(evt) 部分是如此令人困惑.. evt 不是 bool 值。这个怎么运作? function checkIt(evt) { evt
第2行和第3行代码的含义是什么?我想理解它。谢谢。 function stopRKey(evt) { var evt = (evt) ? evt : ((event) ? event
我有一个可调整大小的 div。在尝试调整它的大小时,整个页面都被选中为蓝色,即使我不打算在 iE 和 Edge 中这样做。我尝试了网上显示的许多解决方案,但没有任何效果。下面是我的代码。我无法阻止鼠标
我有一个 react 文件 uploader ,它允许用户附加多个文件附件。每当用户单击输入时,我都会读取data-index来检查输入的位置。 renderFileUploader() {
我有一些代码可以动态地将一个 JSON 元素添加到每一列。当到达第四列时,出现一个循环,并再次将一个元素放入第一列中: first | second | third | fourth | fifth
一旦我触发了 evt.preventDefault(),我如何才能再次恢复默认操作? 最佳答案 根据@Prescott 的评论,与以下相反: evt.preventDefault(); 可能是: 基本
本文整理了Java中com.ctc.wstx.evt.WEntityReference类的一些代码示例,展示了WEntityReference类的具体用法。这些代码示例主要来源于Github/Stac
本文整理了Java中com.ctc.wstx.evt.WstxEventReader类的一些代码示例,展示了WstxEventReader类的具体用法。这些代码示例主要来源于Github/Stacko
本文整理了Java中com.ctc.wstx.evt.WNotationDeclaration类的一些代码示例,展示了WNotationDeclaration类的具体用法。这些代码示例主要来源于Git
本文整理了Java中com.ctc.wstx.evt.WEntityDeclaration类的一些代码示例,展示了WEntityDeclaration类的具体用法。这些代码示例主要来源于Github/
本文整理了Java中com.ctc.wstx.evt.WDTD类的一些代码示例,展示了WDTD类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精
我还在学习 jQuery 和 JS。此代码允许 div .causeBox.step2将输入从未选中状态切换为选中状态: var extendcheck = function(evt) { i
我对 ActionScript 有点陌生,并试图理解现有的代码。这里我有 MyRestServiceEvent 和 MyRestService。 MyRestService 类中定义了许多方法来调度许
javaScript 函数内的 evt 参数 您好 stackoverflow 社区。我需要知道这些函数中如何使用 evt 参数。互联网上有一些示例在函数内部有参数 evt,但我没有看到它们使用该参数
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我发现以下函数允许我在用户粘贴文本时获取数据。 document.addEventListener('paste', function (evt) { console.log(evt.clipbo
这两个函数之间的主要区别是什么? handleOnChange(evt) { this.setState(() => ({ tickerName: evt.target.val
我是 ActionScript 的新手,正在尝试理解现有代码。这里有 MyRestServiceEvent 和 MyRestService。 MyRestService 类中定义了很多方法来发送许多事
按controll + w我要结束程序但是 Mac 的 Case按command+w结束程序使用方法 public void startKeyPressed(java.awt.event.KeyEv
我是一名优秀的程序员,十分优秀!