我正在尝试使用 Adeed 节点简单模式使两个字段相互依赖,如下所示:
const Schemas = {};
Schemas.User= new SimpleSchema({
name: { type: String },
surname: {
type: String,
allowedValues(){
if ( this.field('name').value === "Daniel" ) {
return SomeCollection.find().fetch().map(obj => ...)
}
}
});
但是不可能使用this.field
和其他特定于custom()
allowedValues()
的功能。我想要的:使allowedValues
取决于用户在name
字段中输入的内容(this.field('name').value === "Daniel"
(。或者是否可以在custom()
内部使用allowedValues
?
custom(){
...
return allowedValues; // limit what the user can provide to the field.
}
注意:我使用的是UniForms而不是AutoForm。
我终于使用 UniForms
解决了客户端上的问题。这就是我获得字段值的方式:
<AutoForm
schema={ Schemas.User }
onChangeModel={ model => (
model.name ? this.setState({ name: model.name }) : ''
)}
...
>
...
</Autoform>
使用 onChangeModel={ model.name ? this.setState({ name: model.name }) : '' )}
,我可以在模型更改时存储名称的值。参考我认为也可以使用findValue。但我没有尝试过,因为onChangeModel
满足了我的需求。