流星 - 反应:订阅时跟踪器未运行



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

这是我的跟踪器代码

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]}});
});

您不需要每次值更改时都重新订阅。

流星在withTracker方法中发挥了一些魔力来建立反应性。因此,请确保在该点传入 id(通常从路由参数传递(。

不确定 id 来自哪里 - 是用户输入的,还是下拉菜单?

最新更新