Обзор
Я использую @apollo/hooks
в приложении react typescript и Hasura / Postgres в экземпляре aws ec2. Когда я делаю запрос к базе данных из реакции, все логические значения в одной таблице возвращаются как ложные. Выполнив тот же запрос в интерфейсе Hasura GraphiQL, я могу подтвердить в базе данных, что не все они ложны.
Подробнее
Я пытаюсь получить данные из простой таблицы postgres (без внешних ключей, ссылок на другие таблицы и т. Д.), В которой всего 6 полей:
id: number
hero_button_pointer: string
hero_button_text: string
hero_headline_text: string
hero_sub_headline_text: string
active: boolean
Когда я делаю этот запрос в интерфейсе Hasura GraphiQL
query GetAllHeroInfo {
main_page_header(order_by: {id: asc}) {
active
hero_button_pointer
hero_button_text
hero_headline_text
hero_sub_headline_text
id
}
}
он возвращает все значения правильно. Самое главное, что логические значения верны. У меня есть точно такой же запрос в моем приложении React:
export const GET_ALL_HERO_INFO = gql`
query GetAllHeroInfo {
main_page_header(order_by: { id: asc }) {
active
hero_button_text
hero_headline_text
hero_sub_headline_text
id
hero_button_pointer
}
}
`;
Большая проблема
В своем компоненте я использую перехватчик useQuery:
import { GET_ALL_HERO_INFO } from "../../graphQL/queries";
const MyComponent: React.FC<Props> = () => {
const { loading, error, data: heroData } = useQuery(GET_ALL_HERO_INFO);
console.log(heroData) //everything logs correctly, except boolean values are all false
return (
// the component
)
};
и когда я console.log(heroData)
или пытаюсь использовать данные каким-либо образом, все логические значения равны false
, хотя я могу видеть в базе данных, что они истинны. Я обновил некоторые другие строковые значения непосредственно в базе данных, и эти изменения проходят правильно. Это просто логические значения, которые всегда ложны, независимо от того, что говорит база данных.
Любые идеи?
Правки
16.03.2020: 20:39 - Как было предложено @DanielRearden, я проверил вкладку сети, чтобы узнать, проблема ли это на стороне клиента или на стороне сервера. Похоже, я получаю ответ, содержащий значение true
, но по-прежнему console.log
ложно. Фото прикрепил ниже:
false
, то это сервер, а не клиент. - person Daniel Rearden   schedule 17.03.2020true
, помечены какtrue
, поэтому похоже, что это проблема клиента. Есть идеи, что делать дальше? - person Jacksonopp   schedule 17.03.2020apollo-client
иreact-apollo
вы используете? - person Daniel Rearden   schedule 17.03.2020"@apollo/react-hooks": "^3.1.3",
"apollo-boost": "^0.4.7",
"graphql": "^14.6.0",
"graphql-tag": "^2.10.3",
клиент - это сервер Hasura V.1.1.0 - person Jacksonopp   schedule 17.03.2020apollo-boost
использует"apollo-client": "^2.6.7",
- person Jacksonopp   schedule 17.03.2020