这是我的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 组件中的某处放置加载更多按钮,按下按钮时,在中增加 itemsCount createContainer 订阅更多数据。是否有可能在 createContainer 中更改变量?还是其他任何方式?
答案 0 :(得分:2)
一种方法是使用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)
。