javascript - 单击“添加”时动态表单无法正常工作

标签 javascript reactjs react-hooks

我正在创建一个动态表单,每次都单击“添加”创建一个新元素,直到这里它都工作正常。

  • 我点击了一个保存按钮,我正在获取所有数据并且需要 进行进一步的处理。
  • 当我点击“保存”时,我正在使用 React-hook-form 进行验证。 .
  • 第一次当字段为空时,我单击“保存”,它显示错误(字段不能为空)
  • 然后,当我在输入字段中键入时,它不会采用我按下的第一个字符,而是采用第二个字符。
  • 当我在输入单词后单击退格键时,也会发生同样的情况,但最后一个字符不会被删除。

我在做什么

  • 下面是我的 onchange,我传递了三件事,e、index 和 name

     const handleInputChange = (e, index, name) => {
     const { value } = e.target;
     console.log(name);
     const list = [...inputList];
     list[index][name] = value;
     setInputList(list);};
    
  • 我的 HTML

     < input
       type = "text"
       placeholder = "Display Name"
       name = {
         `employees[${i}].firstName`
          }
       className = {
         errors.employees &&
         errors.employees[i] &&
         errors.employees[i].firstName ?
         'form-control error_input' :
         'form-control'
       }
       onChange = {
         (e) => handleInputChange(e, i, 'firstName')
      }
        value = {
         li.firstName
         }
       ref = {
      register({
         required: 'First Name is required',
      })
    }
    

    />

问题

  • 当输入字段为空时,首次点击保存

  • 输入测试——第一次不需要按t两次

  • 一旦输入 Test,请按退格键删除,它将删除 tes,但要删除 T 需要按两次。

我只是想知道问题出在哪里,我编写的代码我认为我没有遗漏任何内容。

My working code

最佳答案

经过一番研究,我改变了 value={li.firstName} 到 defaultValue={li.firstName} 这似乎有效:)

这里的链接供引用 why is first letter dead in react-hook-form input

关于javascript - 单击“添加”时动态表单无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73386938/

相关文章:

javascript - Angular Controller 不止一次触发。只有某些

javascript - 应用程序将数字吐给我,即使它应该返回另一个值

javascript - React useLocation hook 的替代方案用于基于 url 的页面更新?

reactjs - React useEffect 和 Axios : Making chained API calls within 'then'

javascript - Jquery从 "this"内部的元素创建变量

javascript - Angular JS 表达式不计算

reactjs - ESLint 尊重 VS Code jsconfig.json baseUrl 和路径

javascript - Expo SDK32 undefined 不是对象(评估 '_expo2.default.KeepAwake' )

ios - 从 Xcode 运行 React Native 应用程序失败(从 cli 运行相同的应用程序工作正常)

javascript - 如何在 React 中同步组件共享状态钩子(Hook)