gpt4 book ai didi

javascript - 订阅 React-meteor-data

转载 作者:行者123 更新时间:2023-12-03 06:21:25 25 4
gpt4 key购买 nike

来自docs ,我这样写了我的容器

export default InventoryItemsList = createContainer(() => {
const itemsCollection = Meteor.subscribe('allInventoryItems');
const loading = !itemsCollection.ready();

return {
loading,
items: !loading ? InventoryItems.find().fetch() : []
};
}, class InventoryItemsListComponent extends Component {
render() {
let items = this.props.items;

/* some render logic */

return /*... react component template ...*/ ;
}
});

我看到的问题是

  1. 容器函数被执行多次,因此多次调用Meteor.subscribe;这样好吗? Meteor 会忽略后续订阅吗?
  2. 根据this tutorial ,需要停止订阅,但文档根本没有提及。这本身并不重要,不是吗?

停止(即取消订阅)或解决我从那时起看到的两个问题的建议方法是什么?

TrackerRact 实际上更好吗? (是的,我知道这是固执己见,但肯定有某种形式的 meteor react 约定,在这里!)

最佳答案

1) 容器组件是一个响应式组件,因此每当文档更改或添加到给定集合时,它都会通过容器调用并更新 DOM。

2) 据我所知,容器只会通过您绑定(bind)到的实际组件来订阅集合。一旦您离开该组件,订阅就会停止。

如果您想直接取消订阅,只需在 componentWillUnmount() 方法中调用 this.props.items.stop() 即可。

最后,我不得不说,使用 React 特定的实现总是比使用 Meteor 特定的函数更好(即,在 React 中使用状态变量总是比使用 Session 更好,因为使用容器总是比 Tracker.autorun() 更好)与 React 等)。

关于javascript - 订阅 React-meteor-data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38858909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com