我正在使用Formik构建表单。
我的表单有三个文本区域和1个选择下拉菜单
对于选择下拉菜单,我使用了IssueSelect
(在Formik中为FieldArray
)。
还有IssueSelect
,我同时使用了Create和Update Form。
我的组件看起来像这样:
const IssueSelect = ({ values }) => (
<FieldArray
name="issues"
render={({ remove, insert, push }) => (
<div>
{values.issues && values.issues.length > 0 ? (
values.issues.map((iselected, index) => (
<div key={uuidv1()}>
<div>
<Field
value={iselected.id}
component="select"
name={`issues.${index}`}
>
{issues.map(issue => (
<option key={issue.id} value={issue.id}>
{issue.name}
</option>
))}
</Field>
</div>
<div>
<button onClick={() => remove(index)}>
<b> - </b>
</button>
<button onClick={() => insert(index, issues[0].id)}>
<b> + </b>
</button>
</div>
</div>
))
) : (
<button onClick={() => push(issues[0].id)}>
<b> + </b> Add new issue
</button>
)}
</div>
)}
/>
);
export default IssueSelect;
在“创建表单”中,一切正常。
但是,在Update Form中,我将initialValue传递给
IssueSelect
组件,它正确显示了我已传递的数据。但是我无法更改选择框中的选项。我通过传递
value={iselected.id}
设置了默认值当我通过此 Prop 时,请创建表格。它不再起作用了。
您可以检查我的代码和框,以确切了解我的意思:
https://codesandbox.io/s/rr1o8x3ppq
先感谢您。
最佳答案
<Field
component="select"
name="select"
className={'form-control'}
variant="outlined">
<option value='one' >One</option>
<option value='two'>Two</option>
<option value='three'>Three</option>
</Field>
要设置为默认选项的选项,需要为第一个选项标签编写。它将设置为默认选项。有效。