首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"onClick ={ () => this.props.onClick() }和onClick = {props.onClick }有什么区别?

"onClick ={ () => this.props.onClick() }和onClick = {props.onClick }有什么区别?
EN

Stack Overflow用户
提问于 2020-08-08 01:49:23
回答 2查看 168关注 0票数 0

我正在学习React教程here

请注意以下两个代码片段中的"onClick“属性。

在下面的片段中,一个箭头函数被分配给它,该函数调用在props中传递给它的onClick()函数。

代码语言:javascript
复制
  class Square extends React.Component {
  render() {
    return (
      <button
        className="square"
        onClick={() => this.props.onClick()}
      >
        {this.props.value}
      </button>
    );
  }
}

但是,当类组件被转换为功能组件时,onClick属性仅被分配给传递给props的onClick函数的引用。

代码语言:javascript
复制
function Square(props) {
  return (
    <button className="square" onClick={props.onClick}>
      {props.value}
    </button>
  );
}

为何会这样呢?我很困惑。

EN

回答 2

Stack Overflow用户

发布于 2020-08-08 01:54:56

在基于类的组件中,属性是类实例本身的属性。因此,您可以通过this访问它们。在函数组件中,属性作为参数传递给函数。

您可以阅读基于类的组件和功能组件here的基础知识。

另外,欢迎访问本网站!

票数 1
EN

Stack Overflow用户

发布于 2020-08-08 02:18:00

当您使用ES6类定义组件时,常见的模式是将事件处理程序作为类上的方法。

函数原型方法:

代码语言:javascript
复制
function Square(props) {
  return (
    <button className="square" onClick={props.onClick}>
      {props.value}
    </button>
  );
}

and you bind the state() in constructor using this: 

constructor(props) {
    super(props);
    
    // This binding will help you to read "this." in the function
    this.onClick = this.onClick.bind(this);
  }

onClick() {
// u can read this here
}

箭头函数方法

做同样事情的另一种方法是:在下面的方法中,你不必绑定构造函数,而是使用箭头函数。在函数内部,this.将具有状态。

代码语言:javascript
复制
onClick = () => {
// u can read this here
}

两者都只是两种方法。箭头函数方法和函数原型方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63306902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档