问题标签 [react-jsonschema-forms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - 如何在反应中使用 react-jsonschema-form?
我在构建与 json 反应的表单时遇到问题。我已经安装了 react-jsonschema-form 但我无法让它工作。我在本地安装了包,我正在使用 TypeScript,我正在使用 nx/nrwl。这是我尝试过的。
问题是我从哪里得到 JSONSchemaForm 变量?
例如,这个小片段就像一个魅力 https://codepen.io/krcaltomas99/pen/abvaJdb
谢谢你的建议!
reactjs - 道具更改未触发 useEffect
我有一个带有 useEffect 的 react 组件,当道具更改时它不会被触发。我希望这个组件根据道具更新它显示的内容。然而,当道具改变时,什么也没有发生。
为了调试,我添加了一个可以手动更新值的按钮,效果很好。我只是无法让 useEffect 为我的生命运行。
我尝试将 useEffect 函数监视的值从formContext
更改formContext.queryData[0].basicInformation.firstName
为无效。我也尝试过使用props
。我什至尝试完全删除手表阵列,希望它只是垃圾邮件更新,但没有。
关于如何实现这一目标的任何建议?我知道该值正在传递给组件,因为它在我按下按钮时起作用。当我在网页上的 React 检查器中检查它时,我可以清楚地看到该值在那里。干杯。
编辑:这个组件被用作 react-jsonschema-form 的小部件。基本上每次formData
更新都会发生什么,我将它传递回formContext
. formContext
是我可以将其他数据获取到该小部件的唯一方法。下面是我正在做的精简版。
reactjs - react-jsonschema-form 自定义元素位置
使用[1],我们可以从配置而不是代码react-jsonschema-form
动态渲染组件。React
IE
我们可以使用uiSchema
对象来自定义和配置每个组件的单独外观。但是,是否有可能,而不是以线性方式创建表单,我可以获得每个单独的元素并将它们放置在我想要的位置?
例如,我可能想要name
字段 onpage1
和age
字段 on page3
。目前我能想到的唯一方法是编辑包的源以返回单个元素,而不是将它们包装到Form
对象中。
也许有一些方法React
可以从对象中询问和提取单个组件Form
?
谢谢
reactjs - RFJS 验证显示带键的错误消息,而不是标签
使用https://react-jsonschema-form.readthedocs.io来呈现基于 json 模式的表单,我可以为每个字段定义验证。这很好也很简单,我唯一要寻找的是一种创建更有意义的完整验证错误的方法。
例如
架构:
这提供了验证并返回如下错误文本:
- firstName:不应短于 8 个字符
- firstName: 应该匹配模式 "\d+"
我想将第一部分更改为“名字”,甚至翻译它。我怎么可能做到这一点?
编辑
我认为可以定义firstName
as First name
,这需要将 formData 对象重新映射到实际键的一些“复杂”。
jsonschema - 我可以拥有一个在对象数组中添加字段的 JSON Schema 依赖项吗?
我有一个包含对象数组的 JSON 模式。我希望这些对象中的一个字段依赖于数组外部的属性。
我创建了以下架构:
我希望新字段note
会更新 at 的那个items/note
,但它没有,而是note
在底部生成了一个新字段。这可以在这里看到:
https://codepen.io/samfentr/pen/ZEQpeyg
我认为该解决方案与添加$ref
参考有关,但我无法解决。
javascript - react-json-schema 教程未显示在浏览器中
我对 Web 开发 (html/js) 完全陌生,但现在想使用 react-json-schema 包,它在提供的沙箱中效果很好。
但是,我什至无法让教程正常工作。我编写了一个 html,如教程中所述:
相应的 javascript 文件“react.js”:
但是,打开 html 时,模式根本不会显示在浏览器中。没有错误信息。
我尝试过的事情:
1.)从cdn导入脚本,所以在html头中添加这些行:
2.) 在本地和全局重新安装 npm 和 react-json-schema、react 和 react-dom 包
3.)在js中导入所述包:
reactjs - 如何从 react-jsonschema-form 库在 React 应用程序中显示表单组件?'JSONSchemaForm' 未定义 no-undef
我正在学习反应。我正在尝试将来自https://github.com/rjsf-team/react-jsonschema-form?fbclid=IwAR0HdGosg659-F0hdFp-milh29G_6UX5_qbti6lZBmo7OYKIxgThD5f1Ff8的反应 FORM 组件添加到我的虚拟应用程序中。我使用了 react json 模式表单文档https://react-jsonschema-form.readthedocs.io/en/latest/#installation。
我有红色的使用来自 js 源映射的 React 组件 和react-jsonschema-form 如何通过 cdn 使用它?这可能正在解决类似的问题。但是,我仍然很挣扎。
我做了:
npx create-react-app my-app
cd my-app
,npm install
我的反应版本是
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-scripts": "3.4.1"npm install @rjsf/core --save
我的虚拟 App.js 组件:
我点击 npm start 并得到错误:
据我了解,webpack 找不到 JSONSchemaForm 模块(?)我尝试将文档中的 cdn 文件添加到 index.html。
它没有帮助。文档说我应该添加一个源映射。但是,我不熟悉源映射。我在 mozilla MDN 上定义了红色,但我不知道如何实现它。我也不熟悉手动设置webpack配置,也不熟悉这个解决方案react-jsonschema-form中提到的require.js如何通过cdn使用? .
问题是 - 添加源地图解决问题的可能性有多大?需要学习 webpack 吗?您是否看到我无法显示表单组件的其他原因?
如果添加 source map 可能会解决问题,那么在这种情况下,哪些 webpack 属性是必不可少的?
react-jsonschema-forms - 如何将数组项绘制为一个元素中的芯片,而不是使用自己的小部件将每个数组项绘制在单独的原始文件上?
默认情况下,rjsf 将数组项呈现为表单上的单独字段。因此,例如,此架构/布局:
将在其自己的行上渲染每个字符串项以及添加、删除、重新排序按钮。但是我想要实现的是使用 material-ui 的 Autocomplete 元素来处理整个数组,其中一个 Autocomplete 将代表整个数组,并且项目将是其中的芯片。所以,我使用了上面的模式,并定义了这个小部件:
使用handleChange
方法传递值数组,如下所示:
自动完成按我的预期工作,并将所有输入的值保存到字符串数组中。但是后来当这个值数组被传递到更远的地方时,我从 rjsf 得到一个错误:
所以,我认为发生的事情是我将数组项指定为字符串,这就是它验证失败的原因。但是有没有办法“欺骗” rjsf 并实现我想要的?rjsf 中的多选也是一个字符串数组,但它作为一个组件可以正常工作,并且不会在新字符串上呈现每个项目......
我尝试使用 ArrayTemplate,但它只允许使用 onAddClickProp 为项目添加新的小部件。
reactjs - 如何使用 react-jsonschema-form 禁用附加属性的标签?
我正在尝试使用这个游乐场来找到一个模式,该模式将允许我显示一个对象可添加的自定义属性(基本上我希望用户输入一个关联数组)。
当我这样做时:
我明白了
但我不希望显示标题“newKey Key”和“newKey”。
我尝试在 uischema 中禁用标签
但这只会禁用它们的值,而不是键
如何摆脱“newKey Key”?