Meteor-React: при подписке не работает Withtracker - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь получить документы из коллекции, которая соответствует идентификатору, который пользователь вводит в форму.Так что я делаю подписку на публикацию всякий раз, когда входные данные меняются.Это работает.Моя проблема в том, что когда пользователь вводит идентификатор, который совпадает, реквизиты withtracker заполняются данными, но во второй раз, когда пользователь пытается с идентификатором, который не совпадает на всех реквизитах, не меняется, предыдущие данныевсе еще показывает.

Вот мой код отслеживания

export default PlantDetailsContainer = withTracker(() => {
    Meteor.subscribe('stickerById', null);
    return {
      stickeringDetails: Sticker.findOne()
    }
})(AddPlantDetails);

Вот моя функция, которая вызывает изменение ввода пользователя

handleIdChange = (e) => {
    Meteor.subscribe('stickerById', parseInt(e.target.value));
  }

Вот мой код публикации

Meteor.publish('stickerById', function stickerByIdPublication(id) {
        return Sticker.find({ids: {"$in": [id]}});
    });

1 Ответ

0 голосов
/ 24 сентября 2019

Вам не нужно повторять подписку каждый раз, когда значение меняется.

Метеор использует магию в методе withTracker для настройки реактивности.Поэтому убедитесь, что вы передаете идентификатор в этой точке (обычно из параметра маршрута).

Не уверен, откуда идет идентификатор - пользователь вводит его или это выпадающий список?

...