«Части тела» функционального компонента запускаются для каждого изменения, требуются условия (или useEffect
перехватчики) для блокировки непредвиденных действий.
Просто не используйте useState
для allComments
? Вы можете использовать fe
const allNewComments = (data && data.getPost) ? data.getPost.comments : [];
... если вы хотите перебрать allNewComments
Если вы все еще хотите использовать useState
(в сочетании с useLazyQuery
) .. используйте его в опции / обработчике onCompleted
, например:
const [getComment, { loading, data }] = useLazyQuery(getCommentsQuery, {
variables: {
input: {
id: "5e5cb512e90bd40017385305",
},
},
onCompleted: (data) => {setAllNewComments( data.getPost.comments )}