Я использую graphql HOC немного без особых проблем, но я пытаюсь начать использовать новый компонент <Query />, но у меня возникла проблема. Я слежу за документами здесь, но не получаю никаких результатов. Я знаю, что в запросе gql я запрашиваю больше, чем хочу отобразить, но пока я просто пытаюсь отобразить как можно меньше, чтобы знать, что это работает. Прямо сейчас, когда код запускается, я не получаю <ActivityIndicator />, я не получаю сообщение об ошибке, я просто получаю пустое место, куда должны идти данные.
Весь мой код в этом компоненте ниже. Может ли кто-нибудь увидеть причину, по которой я ничего не придумываю? Я запускаю этот запрос (без части User($id String!) и передаю фактический идентификатор) через игровую площадку graph.cool, и он выдает ожидаемые данные.
import React, { Component } from 'react';
import { StyleSheet, Text, ActivityIndicator, View } from 'react-native';
import { Container, Content, Icon, Button } from 'native-base';
import { withApollo, Query } from 'react-apollo';
import gql from 'graphql-tag';
import theme from '../../styles/theme';
import KoviHeader from '../../layout/KoviHeader';
import FooterTabs from '../../layout/FooterTabs';
import { signOut } from '../user/loginUtils';
const GET_USER_DETAILS = gql`
query User($id: String!){
user(id: $id) {
id
propertyNotes {
title
body
property {
id
propertyName
createdAt
}
}
}
}
`;
class Dashboard extends Component {
render() {
const { screenProps } = this.props;
return (
<Container style = {styles.container}>
<KoviHeader
title='Dashboard'
navigation = {this.props.navigation}
/>
<Content>
<Query query = {GET_USER_DETAILS} variables = {{id: screenProps.user.id}}>
{({ loading, error, data }) => {
if (loading) return <ActivityIndicator size = "large" />;
if (error) return `Error! ${error}`;
return (
<View>
{data.user.map(u => {
<Text>{u.id}</Text>
})}
</View>
)
}
}
</Query>
<Button
full
style = {styles.button}
onPress = {() => {
signOut()
this.props.client.resetStore();
}
}
>
<Text style = {styles.buttonText}>Logout</Text>
</Button>
</Content>
<FooterTabs
activeBtn='dashboard'
navigation = {this.props.navigation}
/>
</Container>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'flex-end'
},
button: {
backgroundColor: theme.COLOR_ORANGE,
},
buttonText: {
color: '#fff',
fontWeight: 'bold'
}
})
export default withApollo(Dashboard);
Я ничего не получаю, ни ошибки, ни загрузки, ни данных.
Вы проверили в сети браузера какой ответ
Я не уверен, что есть способ проверить сеть в приложении React Native, не так ли?
Итак, я только что понял, что у меня есть тип String! в настройке параметра $id, тогда как он должен быть ID!. Это всегда что-то такое маленькое, не так ли?!? В любом случае спасибо за помощь @aravind_reddy
Лол, наконец, ты все равно это понял.





что вы получаете в ответ?