Phi*_*lan 7 reactjs material-ui formik
我正在尝试在 Formik 中使用 Material UI 单选按钮,但它们没有正确点击。我已将问题简化为以下示例:https : //codesandbox.io/s/amazing-currying-s5vn0
如果有人知道我可能做错了什么,或者任何一个系统中都有错误,请告诉我。单击上面示例中的按钮时,它们不会保持单击状态。我有一个使用其他库组件的更复杂的反应功能组件,所以我不能在这里包含它。它的行为略有不同:即使在单击不同的按钮后,按钮仍会保持单击状态。这可能是也可能不是同一个问题。提前致谢。
Chr*_* B. 11
您需要将要渲染的FormikRadioGroup组件内部的单选按钮渲染为 Formik 字段。这样,您实际上可以将 Formik 管理的 props 传递给要使用的组件,并允许RadioGroup组件确保一次只单击一个按钮。我添加了一个options道具来提供一种传递无线电选项数组的方法,并删除了您在该组件之外渲染的所有元素:
const FormikRadioGroup = ({
field,
form: { touched, errors },
name,
options,
...props
}) => {
return (
<React.Fragment>
<RadioGroup {...field} {...props} name={name}>
{options.map(option => (
<FormControlLabel value={option} control={<Radio />} label={option} />
))}
</RadioGroup>
{touched[fieldName] && errors[fieldName] && (
<React.Fragment>{errors[fieldName]}</React.Fragment>
)}
</React.Fragment>
);
};
Run Code Online (Sandbox Code Playgroud)
叉在这里。
编辑:使用渲染函数作为 Field 组件中的子项使用替代示例更新了沙箱。
| 归档时间: |
|
| 查看次数: |
5134 次 |
| 最近记录: |