使用 FieldArray 组件的 Formik 键错误
Formik key error using FieldArray component
我在formik中使用select组件来显示多个字段,但是有一个关键错误。
我的代码片段:
https://codesandbox.io/s/loving-shirley-r0jlh?file=/src/income-info.jsx
重现步骤:
- 尝试 select 一些值并单击“添加”按钮
- Select下一个值
- 单击第一项中的“删除”按钮并更改其余项中的 select 值
- 在这一步您可以看到添加的新项目(这是意外行为)和控制台中的错误
问题出在 key
属性 上。您将 id
作为 key
属性 传递。所以每次您删除该项目时,新项目都会提供相同的密钥。
您需要向 map
函数中的每个子项(项)传递一个唯一的键。
作为解决方案,您可以使用 uuid
package.
然后导入到组件中作为key
属性:
import { v4 as uuidv4 } from 'uuid';
// rest of the codes ...
return (
<div key={uuidv4()}>
// rest of the codes ...
我在formik中使用select组件来显示多个字段,但是有一个关键错误。
我的代码片段: https://codesandbox.io/s/loving-shirley-r0jlh?file=/src/income-info.jsx
重现步骤:
- 尝试 select 一些值并单击“添加”按钮
- Select下一个值
- 单击第一项中的“删除”按钮并更改其余项中的 select 值
- 在这一步您可以看到添加的新项目(这是意外行为)和控制台中的错误
问题出在 key
属性 上。您将 id
作为 key
属性 传递。所以每次您删除该项目时,新项目都会提供相同的密钥。
您需要向 map
函数中的每个子项(项)传递一个唯一的键。
作为解决方案,您可以使用 uuid
package.
然后导入到组件中作为key
属性:
import { v4 as uuidv4 } from 'uuid';
// rest of the codes ...
return (
<div key={uuidv4()}>
// rest of the codes ...