这里事件传参好像只能用bind?

来源:7-7 React 事件和 DOM 事件的区别

起点丶

2021-06-01

this.addWithParams(2, 3)

这样传参会报错,是不是只能用 bind 来传参

  • 报错内容

图片描述

  • 如果把 this.setState() 去掉后,没有报错,但是刷新页面直接输出了,好像是直接就调用了方法,没有点击
  // 组件传参,需要用到 event 对象,在最后传入即可
  addWithParams = (num1, num2, event) => {
    // this.setState({
    //   num: num1 + num2,
    // })
    console.log(num1, num2,event)
  }
render() {
    const btnElem = (
      <button onClick={this.addWithParams(2, 3)}>add</button>
    )
    return (
      <div>
        <p>{this.state.num}</p>
        {btnElem}
      </div>
    )
  }

图片描述

  • 刷新页面直接输出了,并没有点击
  • 改成 bind 形式就没有问题了
写回答

2回答

双越

2021-06-01

哦,你是要在  jsx 中调用啊,而且函数还用到了 this 。那确实得用 bind

0
0

双越

2021-06-01

  1. 把相关代码贴出吧

  2. 把报错信息也贴一下,我先看看报啥错误?

0
1
起点丶
我重新编辑了问题传了图片和代码了
2021-06-01
共1条回复

2024版 前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4663 学习 · 1644 问题

查看课程