我定义了以下简单架构:
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
的组件,可以查看/编辑此评论数组:
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(...)
是一个调用Meteor后端函数的函数,该函数更新Mongo集合。
我想自定义ListField
,以便对于每个注释,"comments.$.text"
TextField都显示为更大的文本框,并允许换行。
我考虑重写ListField
的自定义版本,但是对于这样的小改动,这似乎不必要地复杂。使用统一API进行像这样的小的自定义添加的最佳方法是什么?
答案 0 :(得分:1)
看一下文档,您似乎可以指定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