javascript - 当我设置初始值时,React Input 不会改变

标签 javascript reactjs

我正在使用 ReactJS 创建 CRUD,但 React Forms 有问题。

在某些情况下,我需要在我的输入中设置一个初始值,为此我使用了一个逻辑运算符,一切正常,但是当我更改输入的值时,输入的值并没有改变.

我的组件:

export function Modal(props) {

  const [inputsValues, setInputsValues] = useState({
    id: '',
    nameInput: '',
    emailInput: '',
    phoneInput: ''
  })

  const handleInputChange = (event) => {
    console.log(event.target.value)
    inputsValues[event.target.name] = event.target.value
    setInputsValues()
  }
  const handleFormSubmit = (event) => {
    event.preventDefault()
    console.log(inputsValues)
  }

  return (
    <div className={`area-modal ${props.isOpen ? 'open' : null}`}>
      <div className="modal">
        <h1>{props.title}</h1>
        <form onSubmit={handleFormSubmit} action="">
          <label htmlFor="">Name</label>
          <div className="area-input">
            <input
              type="text"
              name="nameInput"
              value={inputsValues.nameInput}
              onChange={handleInputChange}
            />
          </div>
          <label htmlFor="">Phone</label>
          <div className="area-input">
            <input
              type="text"
              name="phoneInput"
              value={props.dataForm ? props.dataForm.phone : ''}
              onChange={handleInputChange}
            />
          </div>
          <label htmlFor="">Email</label>
          <div className="area-input">
            <input
              type="email"
              name="emailInput"
              value={props.dataForm ? props.dataForm.email : ''}
              onChange={handleInputChange}
            />
          </div>
          <button>{props.buttonText}</button>
        </form>
      </div>
    </div>
  )
}

最佳答案

代替

inputsValues[event.target.name] = event.target.value;
setInputsValues();

您需要使用 setInputsValues 将状态更新为新值:

const { name, value} = e.target;
setInputsValues({ ...inputsValues, [name]: value });

关于javascript - 当我设置初始值时,React Input 不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68448822/

相关文章:

javascript - 将 props 传递到自定义轮播中

javascript - React Native 和 Firebase 实时数据库

javascript - 表单提交后无法阻止页面重定向

javascript - 从函数内部更改全局变量

javascript - 更改嵌套对象的引用是否正在更改对根对象的引用?

javascript - 对于条件事件处理程序,这些方法中的哪一个更好?

javascript - 在 react-router 4 中使用 anchor 标签

reactjs - React.js Vercel 部署错误消息 |错误: No Output Directory named "build" found after the Build completed

javascript - Rails 4 CoffeeScript 点击不起作用

javascript - URI在Javascript中转义n个斜杠