<Mutation mutation = {addUserQuery} variables = {{
username: "AuraDivitiae",
firstname: "Michael",
lastname: "Lee"
}}>
{
(addUser, data) => {
count = count + 1
console.info("render no:" + count);
console.info(data)
return (
<div className = "form">
<form onSubmit = {(e) => {
e.preventDefault();
new Promise((resolve, reject) => { addUser(); resolve("Mutation function called!") }).
then((prevData) => { console.info(prevData); console.info(data); })
}}>
<button type = "submit">Add User</button>
</form>
</div>
);
}
}
</Mutation>
Журналы консоли
render no:1
main.js:88
{called: false, loading: false, data: undefined, error: undefined, client: DefaultClient}
---------------- Нажата кнопка -------------------------------- ----------
render no:2
main.js:88
{called: true, loading: true, data: undefined, error: undefined, client: DefaultClient}
main.js:98
Mutation function called!
main.js:98
{called: false, loading: false, data: undefined, error: undefined, client: DefaultClient}
render no:3
main.js:88
{called: true, loading: false, data: {…}, error: undefined, client: DefaultClient}
Из этих журналов я вижу, что изначально, когда компонент Mutate монтируется, мы получаем номер рендера: 1. Когда нажимается кнопка в линия, вызывается функция mutate addUser () в обещании, которое разрешается с помощью «Вызывается функция мутации». Однако в журналах он показывает объект результата изменения в main.js: 88, это означает, что это повторный рендеринг компонента.
Мой вопрос в том, обновляет ли вызов функции mutate состояние, которое повторно отображает компонент? И было ли управление передано функции mutate, чтобы компонент был повторно отрисован до того, как обещание могло быть разрешено и впоследствии использовано? Но после повторного рендеринга не должно ли вызываться шоу данных?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Кто угодно, пожалуйста!