Meteor- React:订阅时 Withtracker 不是 运行

Meteor- React: Withtracker not running when subscribe

我正在尝试从与用户在表单中输入的 ID 相匹配的集合中获取文档。所以我正在做的是在输入发生变化时订阅该出版物。这行得通。我的问题是,当用户输入一个匹配的 id 时,withtracker 的 props 会填充数据,但是第二次用户尝试使用一个完全不匹配的 id 时,props 不会改变,以前的数据是仍在显示。

这是我的 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]}});
    });

您无需在每次值更改时都重新订阅。

Meteor 在 withTracker 方法中做了一些魔术来设置反应性。所以确保你在那个时候传入了 id(通常来自路由参数)。

不确定 ID 的来源 - 是用户输入的还是下拉列表?