Javascript 反应:为什么向处理程序传递参数不起作用?

Javascript 反应:为什么向处理程序传递参数不起作用?,javascript,reactjs,Javascript,Reactjs,我最近发现了一些东西,但我不知道为什么它会起作用。我在制作react组件时经常这样做: class App extends React.Component { state = { input: '' } onChangeHandler = event => { this.setState({input: event.target.value}); } render() { return ( <div className="A

我最近发现了一些东西,但我不知道为什么它会起作用。我在制作react组件时经常这样做:

class App extends React.Component {
  state = {
    input: ''
  }

  onChangeHandler = event => {
    this.setState({input: event.target.value});
  }

  render() {
    return (
      <div className="App">
        <h1>Hello CodeSandbox</h1>
        <input value={this.state.input} onChange={(event) => this.onChangeHandler(event)} />
      </div>
    );
  }
}
类应用程序扩展了React.Component{
状态={
输入:“”
}
onChangeHandler=事件=>{
this.setState({input:event.target.value});
}
render(){
返回(
你好,代码沙盒
this.onChangeHandler(事件)}/>
);
}
}
我知道这是在每次重新渲染时创建一个新函数。所以我记得在某个地方读到过这样的文章:

class App extends React.Component {
    state = {
      input: ''
    }

  onChangeHandler = event => {
    this.setState({ input: event.target.value });
  }

  render() {
    return (
      <div className="App">
        <h1>Hello CodeSandbox</h1>
        <input value={this.state.input} onChange={this.onChangeHandler} />
      </div>
    );
  }
}
类应用程序扩展了React.Component{
状态={
输入:“”
}
onChangeHandler=事件=>{
this.setState({input:event.target.value});
}
render(){
返回(
你好,代码沙盒
);
}
}
我现在使用后者,因为它不会为每次重新渲染创建新函数。问题是,这是怎么回事?如果我没有在输入标记的onChange prop中作为参数传递事件,那么事件如何到达处理程序?我只是在传递参考资料

很抱歉,如果有人问这个问题,我没有找到答案

谢谢

当您说
时,您所做的只是定义一个函数,在触发
onChange
事件时调用该函数。React将调用此函数并向其传递一个
事件
(更多信息请参见文档页面)


因此,要访问事件数据,只需确保赋予
onChange
属性的任何函数都接受事件作为其第一个参数。请注意,在您的两个示例中,您都是这样做的。

哦,我明白了,这是特定于反应事件的东西?因为我记得在使用承诺时看到过类似的东西,例如:
async function sequence(){const output1=await a();const output2=await b();const output3=await c();return''sequence is done'}sequence()。然后(console.log)
如果我没有传递任何参数,console.log如何知道要记录什么?谢谢!这个答案应该可以帮助你!谢谢!!感谢它注意,这不是react,而是JavaScript