Ошибка диапазона: Максимальный размер стека вызовов превысил собственный React

#reactjs #typescript #react-native #graphql #expo

Вопрос:

Я использую https://formidable.com/open-source/urql/ для извлечения данных с сервера GraphQL в React Native.

Компонент реализован следующим образом:

 import React from "react"
import { View, Text } from "react-native"
import { HashtagsProps } from "./types"
import { useQuery } from "urql";

const HashtagsQuery = `
query {
    searchHashtags(input: {pattern: "vegan"}) {
      id
      name
    }
}  
`

export default function Hashtags({ navigation }: HashtagsProps) {

    const [result] = useQuery({
        query: HashtagsQuery
    })

    const { data, fetching, error } = resu<

    if (fetching) console.log("loading");
    if (error) console.log(error.message);
    console.log(data)

    return (
        <View>
            <Text>Hashtags</Text>
        </View>
    )

} 
 

При запуске приложения запрос работает должным образом, и я получаю данные с сервера GraphQL.

Однако на консоли отображаются сообщения об ошибках:

Необработанное обещание отклонено, [ошибка в диапазоне: Превышен максимальный размер стека вызовов.] в папки node_modules/ядро-Яш/ВКУ/хоста отчет-ошибки.в JS:5:32 в модуле.экспорт в http://192.168.178.27:19000/node_modules/expo/AppEntry.bundle?platform=androidamp;dev=trueamp;hot=falseamp;minify=false:205269:138 в dispatchevent метод в папки node_modules/ядро-Яш/модули/Эс.обещаю.в JS:163:23 в$argument_0 в папки node_modules/ядро-Яш/ВКУ/проанализировать.в JS:3:20 в модуле.экспорт в папки node_modules/ядро-Яш/модули/Эс.обещаю.в JS:160:22 в задаче.вызов$argument_1

Я использую версию expo ^42.0.0.

Я также попытался опустить запрос graphql следующим образом:

 export default function Hashtags({ navigation }: HashtagsProps) {

   
    return (
        <View>
            <Text>Hashtags</Text>
        </View>
    )

}
 

и сообщения об ошибках больше не появляются.

Что я делаю не так?

Ответ №1:

Похоже, что ваш запрос будет пытаться звонить каждый раз. Не могли бы вы, пожалуйста, обернуть с эффектом использования для одного звонка? затем, если у вас есть обновление, вы можете добавить его в deps useEffect.