Я изучаю Apollo Server и Apollo Client и следую некоторым онлайн-примерам. Одна парадигма, которую я видел, состоит в том, что мутации apollo-реагируют, чтобы сделать что-то подобное этому
render() {
const {props: {history}} = this
const {state: {username, password}} = this
return <Mutation mutation={REGISTER}
onCompleted={() => history.push('/login')}>
{(register, {data, error, loading}) => {
if (error) {
return <div>{error.toString()}</div>
}
if (loading) return <div>Loading...</div>
return ({JSX form, etc})
Работает нормально, и когда я получаю сообщение об ошибке - в моем случае, например, с дублированной регистрацией - вместо обычного JSX отображается сообщение об ошибке. Я в тупике, что делать, чтобы потом «перезагрузить» страницу. То есть я хотел бы иметь возможность предпринять какое-то действие, которое «очистило бы» ошибку Mutation и вернуло бы ее к рендерингу JSX, как это было до появления ошибки (либо пользователь может выполнить действие, либо я время ошибки и затем «перезагрузить» страницу). Если я обновлю страницу, она будет работать нормально, но, очевидно, я не хочу этого делать!
Я провел некоторый поиск и сразу же углубился в обсуждение клиентского кэша Apollo, который следующий в моем списке для изучения. На данный момент мне интересно, есть ли более простой способ сделать то, что я пытаюсь сделать.
Любые подсказки очень ценятся!