Процесс мутации у Аполлона
Это мой код до сих пор:
<Mutation mutation={addUserQuery}>
{
(addUser, data)=>{
console.log(data)
return (
<div className="form">
<form onSubmit={(e)=>{
e.preventDefault();
console.log(e);
addUser({variables: {username: "AuraDivitiae",
firstname: "Michael",
lastname: "Lee"}})
}}>
<button type="submit">Add User</button>
</form>
</div>
)
}
}
</Mutation>
Что делает Аполлон, когда монтируется компонент мутации?
Я чувствую, что не совсем понимаю процессы, происходящие внутри Аполлона.
Аполлон подписывается на результат запроса мутации?
Обновляет ли он кеш при возврате?
Хранятся ли данные в состоянии некоторых компонентов?
Я чувствую, что документация не дает достаточно информации иногда...
1 ответ
<Mutation/>
Компонент... нормальный компонент реакции - у него есть собственное состояние, жизненные циклы, он использует клиент apollo (и его кеш), хранит данные.
Вероятно, это немного сбивает с толку, что, находясь в рендере, у нас есть перерисовки, не вызванные setState
нашего компонента.
Если <Mutation/>
является компонентом, то де-факто ваш внутренний контент отображается render
функция <Mutation/>
, не в нашем компоненте (это только делает <Mutation/>
составная часть). Это дополнительный уровень глубины в древовидной структуре компонентов (с собственными жизненными циклами).