我正在构建一个自定义表单,我已经成功地能够在运行时将新字段添加到表单中:
Options.schema.properties= {...Options.schema.properties, [key]: {type: "string"} }
Options.uiSchema= {...Options.uiSchema, [key]: { "ui:widget": DefaultInput, classNames: "col-md-4"} }
key
字段 id在哪里,Options
可以通过 Mobx 观察到
在表单中,我通过 Mobx 使用可观察模式来更新schema.properties
像这样的东西:
class StudentsTab extends Component {
render() {
return (
<MyForm schema={Options.schema} uiSchema={Options.uiSchema} widgets={Options.widgets}
fields={this.customFields}
onChange={log("changed")}
onSubmit={log("submitted")}
onError={log("errors")}
/>
)
}
}
export default observer(StudentsTab);
虽然可以通过这种方式添加新字段,但是我无法删除它们,我的尝试是这样的:
delete Options.schema.properties[key]
delete Options.uiSchema[key]
我可以看到字段 id 已删除,但未从 DOM 中删除
任何想法?添加后如何删除字段?