简体   繁体   English

this.props.relay.setVariables()不会获取新结果(但也会更改变量)

[英]this.props.relay.setVariables() doesnt fetch new results (but change variable as well)

I can't figure out what I'm doing wrong, but I can't make work refetching new range via change variable. 我不知道自己在做什么错,但是我无法通过change变量重新获得新的范围。

Here is part of my relay container code (on initial it works well and fetch first 5 results): 这是我的中继容器代码的一部分(一开始它可以很好地工作并获取前5个结果):

export const Account = Relay.createContainer(_Account, {
  initialVariables: {
    activities: 5
  },

  fragments: {
    account: () => Relay.QL`
      fragment on NodeInterface {
        id
        ... on Member {
          activities(first: $activities) {
            totalCount
            edges {
              node {
                id
              }
            }
          }
        }
      }
    `
  },
});

Here is part of React component what changes relay variable: 这是React组件的一部分,它更改中继变量:

export class _Account extends React.Component {

  constructor(props) {
    super(props);
    this.state = {
      activities: 5
    };
  }

  loadMoreActivities(e) {
    e.preventDefault();
    this.setState((state,props) => {
      const next = state.activities + 5;
      this.props.relay.setVariables({
        activities: next
      });
      return { activities: next }
    });
  }

  render() {
    return (
      <div>

                <div>{ this.state.activities.toString() } - { this.props.relay.variables.activities.toString() }</div>
                <ProfileActivityList 
                 activities={this.props.account.activities} 
                 loadMore={this.loadMoreActivities.bind(this)} />
                }
      </div>
    );
  }
}

I figure out what is wrong. 我找出问题所在。 pageInfo data is important to pagination. pageInfo数据对于分页很重要。 I just add pageInfo to query and everything works as excepted. 我只是将pageInfo添加到查询中,并且一切正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM