我想了解当在 JSX 中调用一个函数作为对 eventHandler 的回调时,“this”的值是如何设置的。我注意到当我直接调用它时,访问状态没有问题,而不会出现著名的 undefined 'this' 错误,如下所示:
import React from "react";
class Accordion extends React.Component {
state = { term: "random term" };
onTitleClick() {
console.log("Title is clicked");
console.log(this.state.term);
}
render() {
const renderedItems = this.props.items.map((item) => {
return (
<React.Fragment key={item.title}>
<div className="title active" onClick={this.onTitleClick()}>
<i className="dropdown icon"></i>
{item.title}
</div>
<div className="content active">
<p>{item.content}</p>
</div>
</React.Fragment>
);
});
return <div className="ui styled accordion">{renderedItems}</div>;
}
}
export default Accordion;
当您将它作为参考传递时,著名的“this”未定义错误又回来了。然后我们知道如何绑定'this'等等。我觉得我只是记住了解决方案,现在想了解其中的区别。