制服:创建自定义字段
Uniforms: Creating custom field
我定义了以下简单模式:
import SimpleSchema from 'simpl-schema';
export const Comments = new Mongo.Collection("comments");
export const CommentsSchema = new SimpleSchema({
comments: Array,
"comments.$": Object,
"comments.$.author": String
"comments.$.text": String
})
我有一个 AutoForm
到 view/edit 这个评论数组的组件:
import {ErrorsField, SubmitField, ListField} from "uniforms-semantic";
import AutoForm from 'uniforms-semantic/AutoForm';
<AutoForm schema={CommentsSchema} onSubmit={comments => this.updateRequest(comments)} model={this.props.comments}>
<ListField name={"comments"}/>
<ErrorsField/>
<SubmitField/>
</AutoForm>
this.updateRequest(...)
是调用更新 Mongo 集合的 Meteor 后端函数的函数。
我想自定义 ListField
以便对于每个评论 "comments.$.text"
TextField 显示为允许换行的更大的文本框。
目前只是一行字符串:
我考虑过重写 ListField
的自定义版本,但对于像这样的小改动来说,这似乎不必要地复杂。使用制服添加像这样的小自定义的最佳方法是什么 API?
查看文档,您似乎可以指定 ListField 的内部工作原理。这是未经测试的,但我猜是这样的:
<ListField name="comments">
<ListItemField name="$">
<NestField name="">
<TextField name="author" />
<LongTextField name="text" />
</NestField>
</ListItemField>
</ListField>
https://github.com/vazco/uniforms/blob/master/INTRODUCTION.md#props-propagation
我定义了以下简单模式:
import SimpleSchema from 'simpl-schema';
export const Comments = new Mongo.Collection("comments");
export const CommentsSchema = new SimpleSchema({
comments: Array,
"comments.$": Object,
"comments.$.author": String
"comments.$.text": String
})
我有一个 AutoForm
到 view/edit 这个评论数组的组件:
import {ErrorsField, SubmitField, ListField} from "uniforms-semantic";
import AutoForm from 'uniforms-semantic/AutoForm';
<AutoForm schema={CommentsSchema} onSubmit={comments => this.updateRequest(comments)} model={this.props.comments}>
<ListField name={"comments"}/>
<ErrorsField/>
<SubmitField/>
</AutoForm>
this.updateRequest(...)
是调用更新 Mongo 集合的 Meteor 后端函数的函数。
我想自定义 ListField
以便对于每个评论 "comments.$.text"
TextField 显示为允许换行的更大的文本框。
目前只是一行字符串:
我考虑过重写 ListField
的自定义版本,但对于像这样的小改动来说,这似乎不必要地复杂。使用制服添加像这样的小自定义的最佳方法是什么 API?
查看文档,您似乎可以指定 ListField 的内部工作原理。这是未经测试的,但我猜是这样的:
<ListField name="comments">
<ListItemField name="$">
<NestField name="">
<TextField name="author" />
<LongTextField name="text" />
</NestField>
</ListItemField>
</ListField>
https://github.com/vazco/uniforms/blob/master/INTRODUCTION.md#props-propagation