Как создать компонент многократного использования с 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,
    // ...
});
Другие вопросы по тегам