7

現在、特定のユーザーの特定の一連の「タスク」のステータスを表示するページに取り組んでいます。データを取得するために、次の Relay コンテナを使用しています。

export default Relay.createContainer(TaskReview, {
  initialVariables: {
    limit: Number.MAX_SAFE_INTEGER,
    studentId: null,
  },
  fragments: {
    task: () => Relay.QL`
      fragment on Task {
        id,
        title,
        instruction,
        end_date,
        taskDataList(first: $limit, type: "subTasks", member: $studentId) {
          edges {
            node {
              id,
              answer,
              completion_date,
            }
          }
        },
        ...

データを取得するユーザーを定義するには、次を使用します。

componentWillMount = () => {
  let {relay} = this.props;
  relay.setVariables({
    studentId: this.props.member.id
  });
}

ただし、ここでの問題は、クエリが最初に でnull定義されているように実行されることinitialVariablesです。私のバックエンド実装では、studentIdが NULL の場合、すべてのメンバーのデータを返すようになっています。

その結果、上記のクエリは 2 回実行されます。1 回目はすべてのメンバーで、2 回目は指定されmemberIdた .

これは、 my 内の他のものを台無しにしますcomponentWillUpdate。この変数を渡して、最初のクエリでそのメンバーのデータのみを取得できる方法はありますか?

ありがとう。

4

1 に答える 1