在 react 组件中的 handleChange(e) 函数中使用“e”来访问文本框值是不是有任何替代方法? [复制]

Posted

技术标签:

【中文标题】在 react 组件中的 handleChange(e) 函数中使用“e”来访问文本框值是不是有任何替代方法? [复制]【英文标题】:Is there any alternate for the use of 'e' in handleChange(e) function in react component for accessing textbox value? [duplicate]在 react 组件中的 handleChange(e) 函数中使用“e”来访问文本框值是否有任何替代方法? [复制] 【发布时间】:2021-04-03 00:53:33 【问题描述】:

这里是 React 组件的代码 sn-p:

  handleChange(e) 
    this.setState( value: e.target.value );
  


  render() 
    return (
      <div className="MarkdownEditor">
        <h3>Input</h3>
        <label htmlFor="markdown-content">
          Enter some markdown
        </label>
        <textarea
          id="markdown-content"
          onChange=this.handleChange
          defaultValue=this.state.value
        />
      </div>
    );
  

handleChange(e) 函数中e 的用途是什么?它是如何派生的?

【问题讨论】:

这是事件,它是在调用回调时由 React 传入的(使用错误的 this,你会发现)。阅读文档:reactjs.org/docs/handling-events.html 【参考方案1】:

"e" 是 React 传递给你的句柄更改函数的合成事件参数。在此处阅读更多信息:React Events

这里无法解释完整的概念,所以你必须更多地了解 DOM 和 React,先从事件开始 here。

【讨论】:

【参考方案2】:

e 是 textarea HTML 元素在其 onChange 被触发时创建的事件,换句话说,当对 textarea 值进行更改时。它包含有关哪个元素的值发生了变化 (e.target) 以及它被设置为哪个值 (e.target.value) 以及其他数据的信息。您可以尝试通过在handleChange 中使用console.log(e) 来记录它,以查看它包含的所有数据。 (e 通常还包含操作其行为方式的方法,例如 e.preventDefault(),但通常在 textarea onChange 生成的事件的情况下没有用。)

名称e 是任意的,可以设置为您想要的任何名称。 targetvalue 属性不是。

还请注意,根据事件调度的来源,可以创建许多类似的event。一个例子是在某处用鼠标单击,这使您可以访问其他数据 - 例如单击的 X 和 Y 坐标 - 而不是触发 textarea onChange 时调度的数据。两者通常称为eelement

【讨论】:

以上是关于在 react 组件中的 handleChange(e) 函数中使用“e”来访问文本框值是不是有任何替代方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

React中的表单应用

this.props 在 React 组件中的箭头函数中显示为未定义

从 React.js 中的另一个类组件调用函数

为啥我不能在 React 中设置这个状态?

处理 React 中的状态变化

表单输入的值在 React 中提交时未更新