Reactjs 如何在Material UI Toggle的eventHandler上传递两个参数?

Reactjs 如何在Material UI Toggle的eventHandler上传递两个参数?,reactjs,events,ecmascript-6,material-ui,Reactjs,Events,Ecmascript 6,Material Ui,在Material UI Toggle组件的文档中,它表示: 现在,在我的代码中,组件如下所示: <Toggle label="Advanced search" style={styles.toggle} onToggle={() => this.useAdvancedSearch()} toggled={this.state.useAdvanced} /> this.useAdvancedSearch()}

在Material UI Toggle组件的文档中,它表示:

现在,在我的代码中,组件如下所示:

    <Toggle
      label="Advanced search"
      style={styles.toggle}
      onToggle={() => this.useAdvancedSearch()}
      toggled={this.state.useAdvanced}
    />
this.useAdvancedSearch()}
toggled={this.state.useAdvanced}
/>
如果该方法只需要事件,那么这将是可行的。例如普通HTML复选框的情况

这不起作用,因为方法需要事件和布尔值作为参数

我应该如何为事件处理程序方法传递事件和isInputChecked布尔值?

只需在事件处理程序中提取:

<Toggle
  label="Advanced search"
  style={styles.toggle}
  onToggle={(event, isInputChecked) => this.useAdvancedSearch(event, isInputChecked)}
  toggled={this.state.useAdvanced}
 />
或者正如@trixn所指出的:

onToggle={this.useAdvancedSearch}

然后处理
useAdvancedSearch

useAdvancedSearch(event, isInputChecked) {
  ...
}
只需在事件处理程序中提取:

<Toggle
  label="Advanced search"
  style={styles.toggle}
  onToggle={(event, isInputChecked) => this.useAdvancedSearch(event, isInputChecked)}
  toggled={this.state.useAdvanced}
 />
或者正如@trixn所指出的:

onToggle={this.useAdvancedSearch}

然后处理
useAdvancedSearch

useAdvancedSearch(event, isInputChecked) {
  ...
}

或者只需将实例方法的定义更改为
useAdvancedSearch(event,isInputChecked){…}
,并忽略不想使用的参数。然后您可以将其作为处理程序传递:
onToggle={this.useAdvancedSearch}
我看不到在那里内联函数有什么好处,因为它必须在每个渲染上创建。@trixn nice one!:)这就是JavaScript的黑魔法;)(这里是Java开发人员)感谢@trixnOr提供的额外提示,只需将实例方法的定义更改为
useAdvancedSearch(event,isInputChecked){…}
,并忽略不想使用的参数。然后您可以将其作为处理程序传递:
onToggle={this.useAdvancedSearch}
我看不到在那里内联函数有什么好处,因为它必须在每个渲染上创建。@trixn nice one!:)这就是JavaScript的黑魔法;)(这里是Java开发人员)感谢您在trixn上提供的额外提示