javascript - react-jsonschema-form 中布尔字段的自定义字段验证
问题描述
我正在使用react-jsonschema- form 在 React 中构建多步骤表单。要求之一是对布尔字段使用material-ui Toggle Buttons。我能够创建一个自定义字段,但不确定在这种情况下验证是如何工作的。即使在选择了一个值后,我也会收到布尔值所需的验证消息。
这是自定义字段代码:
export default function BooleanToggle(props: any) {
const [booleanResponse, setBoolenResponse] = useState(null);
const handleSelection = (event: any, response: any) => {
setBoolenResponse(response);
}
return (
<div>
<ToggleButtonGroup exclusive value={booleanResponse} onChange={handleSelection}>
<ToggleButton value={true} aria-label="Yes">
<div>Yes</div>
</ToggleButton>
<ToggleButton value={false} aria-label="No">
<div>No</div>
</ToggleButton>
</ToggleButtonGroup>
</div>
);
}
架构:
{
"title":"Test title",
"type": "boolean"
}
uiSchema:
{
"ui:field" : "BToggle"
}
领域:
{
BToggle : BooleanToggle
}
如何将此字段中的值添加到 formData 以便进行验证?
解决方案
props BooleanToggle(props: any) 中有一个 onChange 属性
在您的处理程序中,只需调用 onChange(value) 即可写入 fromData
const {onChange} = props;
const handleSelection = (event: any, response: any) => {
setBoolenResponse(response);
onChange(response); // your value for formData
}
推荐阅读
- vue.js - vue-cli 的问题:找不到模块'@babel/preset-env/data/built-ins.json'
- python - 递归二分搜索以检索目标的索引
- python - H2O.ai import_file 看起来不像懒惰的评估,它在做什么?
- jenkins - 詹金斯主页上的 ERR_CONNECTION_TIMED_OUT
- python - Python,使用 Popen 提交 qsub 作业
- unity3d - NPC不断走进墙壁 - Unity2D
- html - 在 VBA 中使用 ReactJS 选择 HTML 下拉列表
- javascript - 使用分层 .reduce() 或 .filter() 函数基于单独的搜索数组在对象数组中查找对象?
- javascript - 如何在 redux 中避免不可变
- c# - RestSharp,基本身份验证