不能在 JSX 参数中使用匿名函数(taro/no-anonymous-function-in-props)

详情请看文档 事件处理

规则详情

以下代码会被 ESLint 提示警告,同时在 Taro(小程序端)也不会有效:

  1. <View onClick={() => this.handleClick()} />
  2. <View onClick={(e) => this.handleClick(e)} />
  3. <View onClick={() => ({})} />
  4. <View onClick={function () {}} />
  5. <View onClick={function (e) {this.handleClick(e)}} />

以下代码不会被警告,也应当在 Taro 任意端中能够运行:

  1. <View onClick={this.hanldeClick} />
  2. <View onClick={this.props.hanldeClick} />
  3. <View onClick={this.hanldeClick.bind(this)} />
  4. <View onClick={this.props.hanldeClick.bind(this)} />

解决方案

使用 bind类参数绑定函数。

  1. <View onClick={this.props.hanldeClick.bind(this)} />

当测试用例和线上项目都检测通过时,Taro 将很快(下一个 Minor 版本)支持这一特性。