gpt4 book ai didi

javascript - 对绑定(bind)的工作原理感到困惑

转载 作者:行者123 更新时间:2023-12-03 02:11:08 25 4
gpt4 key购买 nike

我对绑定(bind)的工作原理有一些了解,但在我的组件中我使用 this很多,我对 .bind(this) 正在做什么以及它如何与 onClick 和 onChange 交互感到有点困惑。我知道this.addTodo指的是 TodoInput

class TodoInput extends Component {
constructor(props) {
super(props);

this.state = {
value: 'test',
};

this.handleChange = this.handleChange.bind(this);
this.addTodo = this.addTodo.bind(this);
}

handleChange(e) {
console.log('CHANGE HERE');
}

addTodo(todo) {
console.log('TODO:', todo);
}

render() {
return (
<div>
<input type="text" value="" onChange={this.handleChange} />
<button className="btn btn-primary" onClick={() => this.addTodo(this.state.value)}>Submit</button>
</div>
);
}
}

最佳答案

当您通过引用传递实例方法时,上下文将丢失。通过将其显式绑定(bind)到当前实例,您可以安全地通过引用传递它,同时保持 this

的值

关于javascript - 对绑定(bind)的工作原理感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49568044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com