現在、特定のユーザーの特定の一連の「タスク」のステータスを表示するページに取り組んでいます。データを取得するために、次の 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
。この変数を渡して、最初のクエリでそのメンバーのデータのみを取得できる方法はありますか?
ありがとう。