我有一个简单的React代码,如下所示:
export class TodoList extends Component {
constructor(props) {
super(props)
console.log(this)
}
addTask() {
// why is this null
console.log(this.textInput)
}
render() {
return (
<div>
<input type="text" ref={(input) => {this.textInput = input}} />
<button onClick={this.addTask}>Add New Task</button>
<h6>Pending Tasks</h6>
<PendingTaskList />
</div>
)
}
}
在addWG函数中,"this"的值始终为空。我知道我可以通过绑定它来解决这个问题,但我的问题是为什么它首先是空的。
它是null,因为this
不再引用类。避免这种情况的最好方法是使用箭头函数。
从文档:
arrow函数不会创建自己的上下文,因此它具有封闭上下文的原始含义。
addTask = () => {
console.log(this.textInput)
}
问题内容: 我有一个想法,可能是因为我正在做一些样式设计来更改单选按钮,但是我不确定。我正在设置一个onClick事件,该事件两次调用了我的函数。我已删除它以确保它没有在其他地方被触发,并且onClick似乎是罪魁祸首。 我的功能目前仅是运输选项的简单控制台日志: 如果没有任何理由可以在这里看到为什么会发生这种情况,我可以发布其余代码,但是有很多方面,我认为这与之无关,但是我认为这是一个很好的起点
我将我的React类从ES5重构到ES6,现在当我单击一个按钮调用时,行开头的初始为空。太奇怪了。 这是我的课: 单击登录按钮调用登录功能,但由于某种原因,为 谢谢你看一下
嗨! 类似于:
我使用从iPython笔记本下载CSV时建议的代码动态构建javascript代码,并在从jupyter笔记本调用时使用python中的javascript()将其传递给浏览器。代码工作得很好。如果我在python函数中嵌入相同的代码,并从同一个jupyter笔记本调用python函数,那么python中的调用Javascript()将不再有效。如何使可重用功能正常工作? 我正在Windows 1
问题内容: 我为什么可以这样做: 但是我不能这样做: 这两个函数都破坏了this的值并将其更改为,但是第二个函数抛出以下错误: 我怀疑这是因为允许分配意味着我可以将数组更改为其他内容(例如字符串),但是我希望那里的人可以肯定并且/或者有更详细的解释。 问题答案: 不允许在函数内分配值。假设您 可以 执行此操作,并且您的代码如下所示: 现在,如果您这样做: 在对象上调用函数的行为不应更改对象的 身份
问题内容: 例如,当我们向窗格添加新按钮时,我们需要编写以下代码: 为什么我们需要调用“ getChildren()”?它甚至做什么?我们为什么不能说: 我们将按钮添加到窗格中。我们不会将其添加到其子项中, 问题答案: 简短的答案就是“您必须那样做,因为这就是API的编写方式”。当然,您可能真正要问的是为什么要这样编写API。我认为这实际上是两个(相关的)问题。一种与方法名称有关,以及该方法的作用