Formik - 带无线电输入的 FieldArray
Formik - FieldArray with radio input
我正在使用 formik 1.5.8
版本 2 之前的版本,并且我正在尝试使用 <FieldArray />
为用户生成多个嵌套选项(问题和 MCQ 答案)。
一切正常,但问题是我想为每个答案生成一个 radio button
输入,以将此答案标记为正确答案。
嵌套的 <FieldArray />
生成很好,但是如您所知,为了使 Radio Button
工作,您必须为它们提供相同的名称和不同的值,所以在这种情况下,我我给他们提供了第一个答案选项的名称,所以当我更改它们时,只有第一个答案选项会更改其值。
我该如何做这样的事情,即选中的单选按钮将其正确的字段值更改为 true
而其他的更改为 false
?
这里有一个 Codesandbox
来演示......
https://codesandbox.io/s/formik-yup-fieldarray-with-radio-inputs-r5yxl
如果有人想向我们展示如何使用 Radibuttons
执行此操作,请继续,我会接受您的正确答案。
但是对于那些有兴趣的人,我设法通过使用 "radio" 按钮以外的东西来设置 "correct answer" 标志的值来解决这个问题,我只是用一个按钮来将正确的表单值设置为 true
,同时将其他相关输入的值设置为 false
.
这是我使用的按钮...
<button
type="button"
className={ values.payload[index].answers[index2].correct
? "active"
: ""}
onClick={() => {
values.payload[index].answers.map(
(tem3, index3) => {
setFieldValue(`payload[${index}].answers[${index3}].correct`,false);
}
);
setFieldValue(flagName, true);
}}
>
{values.payload[index].answers[index2].correct
? "Correct Answer"
: "Mark As Correct"
}
</button>
我还更新了这里的 Codesandbox
示例 ...
https://codesandbox.io/s/formik-yup-fieldarray-with-buttons-instead-of-radio-inputs-0ek59
我正在使用 formik 1.5.8
版本 2 之前的版本,并且我正在尝试使用 <FieldArray />
为用户生成多个嵌套选项(问题和 MCQ 答案)。
一切正常,但问题是我想为每个答案生成一个 radio button
输入,以将此答案标记为正确答案。
嵌套的 <FieldArray />
生成很好,但是如您所知,为了使 Radio Button
工作,您必须为它们提供相同的名称和不同的值,所以在这种情况下,我我给他们提供了第一个答案选项的名称,所以当我更改它们时,只有第一个答案选项会更改其值。
我该如何做这样的事情,即选中的单选按钮将其正确的字段值更改为 true
而其他的更改为 false
?
这里有一个 Codesandbox
来演示......
https://codesandbox.io/s/formik-yup-fieldarray-with-radio-inputs-r5yxl
如果有人想向我们展示如何使用 Radibuttons
执行此操作,请继续,我会接受您的正确答案。
但是对于那些有兴趣的人,我设法通过使用 "radio" 按钮以外的东西来设置 "correct answer" 标志的值来解决这个问题,我只是用一个按钮来将正确的表单值设置为 true
,同时将其他相关输入的值设置为 false
.
这是我使用的按钮...
<button
type="button"
className={ values.payload[index].answers[index2].correct
? "active"
: ""}
onClick={() => {
values.payload[index].answers.map(
(tem3, index3) => {
setFieldValue(`payload[${index}].answers[${index3}].correct`,false);
}
);
setFieldValue(flagName, true);
}}
>
{values.payload[index].answers[index2].correct
? "Correct Answer"
: "Mark As Correct"
}
</button>
我还更新了这里的 Codesandbox
示例 ...
https://codesandbox.io/s/formik-yup-fieldarray-with-buttons-instead-of-radio-inputs-0ek59