0
graphQL apolloの突然変異に問題があります。ページがロードされると、クエリlectureResponseQuery
が実行され、クエリ== nullの場合は、fetchLectureResponseMutation
が実行されて新しいドキュメントが作成されます。この突然変異は新しい結果を返し、クエリの更新を行い、コンポーネントが新しいデータで再レンダリングすることを期待しますが、そうはしません。なぜ誰がそれが分かっていますか?ありがとう!変異後のApolloの更新が再レンダリングを引き起こさない
@graphql(fetchLectureResponseMutation, {
options: ownProps => ({
variables: { lectureName: ownProps.match.params.lectureName },
update: (proxy, { data: { fetchLectureResponse } }) => {
const data = proxy.readQuery({
query: lectureResponseQuery,
variables: { lectureName: ownProps.match.params.lectureName },
});
data.lectureResponse = fetchLectureResponse;
proxy.writeQuery({
query: lectureResponseQuery,
data,
});
},
}),
name: 'fetchLectureResponse',
})
@graphql(lectureResponseQuery, {
options: ownProps => ({
variables: { lectureName: ownProps.match.params.lectureName },
}),
})
class LecturePage extends React.PureComponent {
componentWillUpdate(nextProps) {
if (nextProps.data.lectureResponse === null) {
this.props.fetchLectureResponse();
}
}
render() {
const { data } = this.props;
if (data.loading || data.lectureResponse === null) {
return <Loading />;
}
return <LectureLayout lectureResponse={data.lectureResponse} />
}
}