小编Jai*_*zar的帖子

在 React 钩子中,handleChange 中没有 e.target 和 setValue()

由于我正在学习如何使用钩子构建 React 表单,因此我浏览了 3 篇以这篇文章告终的快报。一切都很顺利,直到我进入最后一步,当您使用以下命令创建自定义挂钩时:

function useFormInput(initialValue) {
  const [value, setValue] = useState(initialValue);

  function handleChange(e) {
    setValue(e.target.value);
  }

  return {
    value,
    onChange: handleChange
  };
}
Run Code Online (Sandbox Code Playgroud)

输入是:

const Input = ({ type, name, onChange, value, ...rest }) => (
    <input
        name={name}
        type={type}
        value={value}
        onChange={event => {
            event.preventDefault();
            onChange(name, event.target.value);
        }}
        {...rest}
    />
);
Run Code Online (Sandbox Code Playgroud)

表格是:

const Form = () => {
  const email = useFormInput("");
  const password = useFormInput("");

  return (
    <form
      onSubmit={e =>
        e.preventDefault() || alert(email.value) || alert(password.value)
      } …
Run Code Online (Sandbox Code Playgroud)

javascript forms reactjs react-hooks

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

forms ×1

javascript ×1

react-hooks ×1

reactjs ×1