1

这是我的 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组件中的某个位置,当按下按钮时,增加createContainer中的itemsCount以订阅更多数据。是否可以更改createContainer中的变量?还是有其他方法?

4

1 回答 1

2

您可以做到这一点的一种方法是使用 aReactiveVar来保存您的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)

于 2016-08-23T18:48:54.690 回答