React onChange 不起作用。有人能帮我吗?

React onChange is not working. Can someone help me?

这段代码有一个奇怪的问题。我认为一切都正确,我将它与其他类似代码进行了比较,但我找不到问题。

问题是 onChange 没有写入我的 React 组件的输入。但是,如果我更改了 useState 初始值的名称,使其与我的输入不匹配,它就可以工作,因为它与初始对象无关。

这是我的代码:

 import React, { Fragment, useState } from "react";

const NuevoProyecto = () => {
  //State para proyecto

  const [proyecto, guardarProyecto] = useState({
    nombre: "",
  });

  //extraer nombre de proyecto

  const { nombre } = proyecto;

  //Lee contenidos del Input
  const onChangeProyecto = (e) => {
    guardarProyecto({
      ...proyecto,
      [e.target.name]: e.target.value,
    });
  };

  //Cuando el user envia un proyecto
  const onSubmitProyecto = (e) => {
    e.preventDefault();

    //Validar el proyecto

    //agregar al state

    //reiniciar el form
  };

  return (
    <Fragment>
      <button type="button" className="btn btn-block btn-primario">
        Nuevo Proyecto
      </button>

      <form className="formulario-nuevo-proyecto" onSubmit={onSubmitProyecto}>
        <input
          type="text"
          className="input-text"
          placeholder="Nombre Proyecto"
          nombre="nombre"
          value={nombre}
          onChange={onChangeProyecto}
        />

        <input
          type="submit"
          className="btn btn-primario btn-block"
          value="Agregar Proyecto"
        />
      </form>
    </Fragment>
  );
};

export default NuevoProyecto;

这是带有输入的组件开发工具的图片:

在使用 useState 函数初始化状态时,您提到了 属性 nombre: "" 作为字符串,之后您使用相同的 属性...此代码初始化状态太冗长了。

您正在编写冗余代码。你没有用 属性 初始化状态。稍后也可以使用扩展运算符添加属性,就像您在代码的后半部分所做的那样。

const [proyecto, guardarProyecto] = useState({

});

//去掉这一行。并编辑第一行。休息一切看起来很好。 //const { nombre } = proyecto;


 <input
   type="text"
   className="input-text"
   placeholder="Nombre Proyecto"
   name="nombre"
   value={nombre}
   onChange={onChangeProyecto}
/>