Как создать компонент многократного использования с simpleSchema
Я мог бы думать об этом неправильно, поэтому, пожалуйста, не стесняйтесь исправить мои мысли.
Я использую simpleSchema, и у меня есть раздел кода, который используется в более чем одной схеме. Есть ли способ создать отдельный компонент и импортировать его в каждую схему, чтобы при необходимости обновления компонента мне не приходилось обновлять его в нескольких местах?
Дорожка: resuableComponent
type: String,
optional: true,
autoform: {
type: "select",
options: function () {
return [
{label: "School logo 1", value: 'url'},
{label: "School logo 2", value: 'url'},
{label: "School logo 3", value: 'url'},
];
},
}
Дорожка: studentCollection.js
Schemas.Student = new SimpleSchema({
studentUserId: {
type: String,
},
school: {
type: String,
optional: false
},
**resuableComponent**
});
Дорожка: teacherCollection.js
Schemas.Teacher = new SimpleSchema({
teacherUserId: {
type: String,
},
school: {
type: String,
optional: false
},
**resuableComponent**
});
1 ответ
Решение
Вы можете переместить повторно используемые объекты в другой файл, который должен быть виден как на клиенте, так и на сервере, если вы используете SimpleSchema.
Пример на основе вашего вопроса:
lib/schema-components.js
:
SchemaComponents = {
school: {
type: String,
optional: false
},
// ...
// more reusable components here
};
someCollectionFile.js
:
Schemas.Student = new SimpleSchema({
studentUserId: {
type: String
},
school: SchemaComponents.school,
// ...
});