Je tente d'aller chercher certains de Github's GraphQL data et de l'afficher en utilisant React & Relay. Les deux problèmes que j'ai sont qu'il semble relais ajoute des alias à la réponse (ce qui rend difficile à référencer), et pas tous les éléments demandés sont passés dans mon composant props
. Dans le code ci-dessous je peux rendre this.props.relay.variables.name
mais obtenir indéfini en essayant de boucler sur this.props.relay.variables.issues
impossible de rendre les accessoires imbriqués à partir de Github GraphQL
// AppQuery.js
import Relay from 'react-relay'
export default {
relay : Component => Relay.QL `
query {
relay {
${Component.getFragment('relay')}
}
}
`
};
// AppContainer.js
import Relay from 'react-relay'
import App from './AppComponent'
export default Relay.createContainer(App, {
initialVariables: {
owner: "rails",
name: "rails",
count: 10
},
fragments: {
relay:() => Relay.QL `
fragment on Query {
repository(owner: $owner, name: $name) {
name
owner
description
issues(first: 20) {
edges {
node {
title
}
}
}
}
}`
}
});
//AppComponent.js
export default class App extends React.Component {
render() {
return (
<div>
<h1>{this.props.relay.variables.name}</h1>
<ul>
{ this.props.relay.variables.issues.edges.map((issue) => {
return(<li>{issue.node.title}</li>)
})}
</ul>
</div>
);
}
}
Dans l'aperçu de la réponse, il semble que je récupère avec succès les données spécifiées.
Mais quand je journal de la console this.props
certaines propriétés de la récupération manquent.
qui a du sens, mais je suis encore en train de 'TypeError: Impossible de lire « questions » propriété de undefined'. Est-ce que cela pourrait avoir quelque chose à voir avec la réponse que je reçois? '{" data ": {" relay ": {" _ repository41jr1f ":" Je ne sais pas pourquoi cela arrive à certaines propriétés. – Trenton
essayez-vous d'accéder aux données sur le conteneur relais, ou dans le composant interne? en fonction de votre sortie, il semble que vous essayez d'y accéder dans le conteneur Relay où il n'appartient pas. Le conteneur Relay transmet les données au composant interne en tant qu'applications, une fois la requête terminée. – marktani