首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式设置react-jsonschema-forms中的默认值

以编程方式设置react-jsonschema-forms中的默认值
EN

Stack Overflow用户
提问于 2020-05-06 07:02:45
回答 1查看 2.1K关注 0票数 1

我正在尝试使用react-jsonschema-form向表单中的选择字段添加默认值。我实现这一点的方式是通过自定义组件。加载自定义组件时,它将使用默认数据调用onChange函数。我使用它的一个例子是,当我有一个日期字段时,我希望今天作为默认值。

如果我只有一个设置默认值的自定义组件,它就可以工作。但是,如果我有多个需要默认值的字段,它就不能工作。我做了一个小的JSFiddle来展示这一点。如果您没有更改任何内容并按下submit按钮,您可以看到只设置了date4。

在调用onChange之前,我们使用了一个效果并添加了一个超时,从而让它正常工作。这个JSFiddle显示了我们所做的工作,但是我不能让它在JSFiddle上工作。

我的问题是,使用react-jsonschema-form以编程方式设置默认值的最佳方式是什么?我真的不希望以编程方式修改模式本身。

EN

回答 1

Stack Overflow用户

发布于 2020-06-01 13:51:16

在架构中添加默认值。

代码语言:javascript
复制
properties: {
        date: { type: "string", format: "date", default:'2020-06-09' },
        date2: { type: "string", format: "date" },
        date3: { type: "string", format: "date" },
        date4: { type: "string", format: "date" },
        description: { type: "string" }
    }

您将在自定义微件属性中获取默认值

代码语言:javascript
复制
const DatePickerDefaultToToday = (props) => {
    const onChange = (e) => {
            props.onChange(convertDateToString(e.value));
        }
  onChange({value: new Date(), syntheticEvent: null, show: true, target: null});
  return (<input type="date" onChange={onChange} defaultValue={props.value === undefined ? convertDateToString(new Date()) : props.value}/>)
}

默认值将在属性中获取。如果缺省值不存在,则添加ive以获取今天的日期

代码语言:javascript
复制
defaultValue={props.value === undefined ? convertDateToString(new Date()) : props.value}

设置该值的另一种方法是将formData属性传递给表单。

代码语言:javascript
复制
<Form schema={schema} uiSchema={uiSchema} formData={formData} widgets={customWidget} onSubmit={onSubmit}/>

您可以将数据作为key-value p2020-06-09air作为模式中定义的名称进行传递

代码语言:javascript
复制
const formData={{date:'2020-06-09'}}

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61624523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档