javascript - 如何在React中获取表单提交的输入值

标签 javascript reactjs

我是 React 新手,一直在尝试制作注册表单,但我找不到在单击按钮 (onClick) 时从输入中获取数据的方法


function App() {

  const userData = []

  function handleClick() {
    //get input data here
  }

  return (
    <div className="form-main">
      <div className='em'>
        <label className='label '> User e-mail </label>
        <Input type="email" />
      </div>
      <div className='pw'>
        <label className='label '> Password </label>
        <Input type="password" />
      </div>

      <button type="submit" className="submit-btn" onClick={handleClick}>Signup</button>
      
    </div>
  );
}

我在下面分享了我的输入组件,以防有帮助(我在发布时缩短了代码)


function Input(props) {
    return (
        <input type={props.type} className="input"></input>
    );
}

最佳答案

您的表单输入不受控制 - https://reactjs.org/docs/forms.html#controlled-components

React 未注册输入值的更新。一个快速精简的工作版本,让您了解它是如何工作的:

const Form = () => {
   const [email, setEmail] = useState('');

   const handleSubmit = (event) => {
       event.preventDefault();
       // ... do something with email
   }

   return (
      <form onSubmit={handleSubmit}>
         <input type='email' value={email} onChange={(e) => { setEmail(e.target.value) }} />
         <button type='submit'>Submit</button>
      </form>
   );
}

通过这种方式,React 可以“控制”输入,您可以使用 handleSubmit() 函数中的 email 值执行任何操作。

关于javascript - 如何在React中获取表单提交的输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72135739/

相关文章:

javascript - 禁用输入按钮

javascript - Webpack 在 watch 上运行插件脚本

javascript - 使用 jquery 单击输入类型按钮时如何更改 Canvas 背景图像?

reactjs - 有人有这个问题吗? "To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method"

javascript - 将 Quill 导入 React 应用程序会抛出 "React is not defined"、 "Unexpected token import"

javascript - 通过返回 <div> 使用 Ajax/jQuery 加载更多内容

javascript - React - 解析逗号分隔的用户输入

javascript - Redux 或 setTimeout - 如何观察子组件中的 props 变化?

reactjs - 我们可以将 React 组件集成到 Aurelia 项目中吗?

javascript - componentDidMount() 不工作但命中调试器