前言:
我正在一个教育网站上工作。每当学生在课程中填写测验时,我们都会执行submitQuiz
变异。解析为具有给定等级的更新后的Quiz
。最重要的是,提交测验还可以更新课程中学生的progress
和课程中的整体progress
。因此,submitQuiz
突变也可以解析为Lesson
和Course
,其中更新了progress
。
示例架构摘录:
type SubmitQuizResult: {
Quiz: Quiz!
Lesson: Lesson!
Course: Course!
}
type Mutation {
submitQuiz(quizId: Int!, answers: String!): SubmitQuizResult!
}
我怎么称呼突变:
mutation SubmitQuiz($quizId: Int!, $answers: String!) {
submitQuiz(quizId: $quizId, answers: $answers) {
Quiz { id answers grade }
Lesson { id progress }
Course { id progress }
}
}
问题:
现在,我们要添加一项新功能-计算在我们网站上花费的时间。计时器会在用户执行任何操作(包括检查和锻炼,完成阅读课程或提交测验 )时更新。
可能的解决方案:
refetchQueries
参数,该参数将重新获取当前计时器问题:
文档说[1]:
在大多数情况下,您的客户不应使用订阅来 保持最新与您的后端。相反,您应该轮询 间歇性查询,或在需要时重新执行查询 用户执行相关操作。
何时应该使用订阅?我的情况是否值得使用?
[1] https://www.apollographql.com/docs/react/data/subscriptions/#when-to-use-subscriptions