gpt4 book ai didi

reactjs - React Hook Forms + Material UI 复选框

转载 作者:行者123 更新时间:2023-12-03 16:45:35 24 4
gpt4 key购买 nike

使用 React Hook Form 和 material-ui 复选框组件提交表单构建时出现错误。复选框的数量是从我的 api 列表中构建的:

        <Grid item xs={12}>
<FormControl
required
error={errors.project?.stack ? true : false}
component='fieldset'>
<FormLabel component='legend'>Tech Stack</FormLabel>
<FormGroup>
<Grid container spacing={1}>
{techs.map((option, i) => (
<Grid item xs={4} key={i}>
<FormControlLabel
control={
<Checkbox
id={`stack${i}`}
name='project.stack'
value={option.id}
inputRef={register({required: 'Select project Tech Stack'})}
/>
}
label={option.name}
/>
</Grid>
))}
</Grid>
</FormGroup>
<FormHelperText>{errors.project?.stack}</FormHelperText>
</FormControl>
</Grid>

提交表单时,我收到以下错误(多次,每个复选框呈现 1 个):

Uncaught (in promise) Error: Objects are not valid as a React child (found: object with keys {type, message, ref}). If you meant to render a collection of children, use an array instead.



我不明白这个错误。该消息显然表明这是一个渲染问题,但组件渲染良好。问题发生在提交。有什么建议吗?

谢谢

最佳答案

更新 : 如果你使用 RHF >= 7,你应该使用 props.field调用 props.field.valueprops.field.onChange .

您可以使用默认的复选框 Controller :

<FormControlLabel
control={
<Controller
name={name}
control={control}
render={(props) => (
<Checkbox
{...props}
checked={props.value}
onChange={(e) => props.onChange(e.target.checked)}
/>
)}
/>
}
label={label}
/>
我使用了 RHF 的 Controller 示例,但必须添加 checked={props.value} :
https://github.com/react-hook-form/react-hook-form/blob/master/app/src/controller.tsx

关于reactjs - React Hook Forms + Material UI 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62291962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com