Meteor createContainer 重新订阅数据
Meteor createContainer resubscribe for data
这是我的 createContainer 包装器:
export default createContainer(({params}) => {
const currentUser = Meteor.user();
let itemsCount = 10;
const subs = Meteor.subscribe('items', itemsCount);
const items = Items.find({}, {sort: {country: 1, lastUpdateCheck: -1}}).fetch();
return {
items,
currentUser,
};
}, MyComponent);
我想在 MyComponent 组件中的某处放置 Load More 按钮,当按下按钮时增加 [=15= createContainer 中的 ]itemsCount 订阅更多数据。是否可以在 createContainer 中更改变量?或者其他方式?
你可以做到这一点的一种方法是使用 ReactiveVar
来保持你的 itemsCount
,然后将这个 ReactiveVar
作为道具传递到你的 MyComponent
中。单击加载更多按钮时,您可以更改 itemsCount
值,这将导致您的 createContainer
代码重新 运行。快速示例:
const itemsCount = new ReactiveVar(10);
export default createContainer(({params}) => {
const currentUser = Meteor.user();
const subs = Meteor.subscribe('items', itemsCount.get());
const items = Items.find(
{},
{sort: {country: 1, lastUpdateCheck: -1}}
).fetch();
return {
items,
currentUser,
itemsCount,
};
}, MyComponent);
然后在您的 MyComponent
中,您将在单击加载更多按钮后在某处调用 this.props.itemsCount.set(X)
。
这是我的 createContainer 包装器:
export default createContainer(({params}) => {
const currentUser = Meteor.user();
let itemsCount = 10;
const subs = Meteor.subscribe('items', itemsCount);
const items = Items.find({}, {sort: {country: 1, lastUpdateCheck: -1}}).fetch();
return {
items,
currentUser,
};
}, MyComponent);
我想在 MyComponent 组件中的某处放置 Load More 按钮,当按下按钮时增加 [=15= createContainer 中的 ]itemsCount 订阅更多数据。是否可以在 createContainer 中更改变量?或者其他方式?
你可以做到这一点的一种方法是使用 ReactiveVar
来保持你的 itemsCount
,然后将这个 ReactiveVar
作为道具传递到你的 MyComponent
中。单击加载更多按钮时,您可以更改 itemsCount
值,这将导致您的 createContainer
代码重新 运行。快速示例:
const itemsCount = new ReactiveVar(10);
export default createContainer(({params}) => {
const currentUser = Meteor.user();
const subs = Meteor.subscribe('items', itemsCount.get());
const items = Items.find(
{},
{sort: {country: 1, lastUpdateCheck: -1}}
).fetch();
return {
items,
currentUser,
itemsCount,
};
}, MyComponent);
然后在您的 MyComponent
中,您将在单击加载更多按钮后在某处调用 this.props.itemsCount.set(X)
。