Github's GraphQL dataの一部を取得しようとしていて、それをReact & Relayを使用して表示しようとしています。私が持っている2つの問題は、リレーがレスポンスにエイリアスを追加している(参照が難しくなっている)ようだということです。クエリされたアイテムのすべてが私のコンポーネントprops
に渡されるわけではありません。コードでは、以下の私はthis.props.relay.variables.name
をレンダリングするが、this.props.relay.variables.issues
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>
);
}
}
私が成功し、指定されたデータをフェッチしていますことが表示されます。
しかし、ときに私はフェッチからthis.props
いくつかのプロパティが欠落しているログコンソール。代わりにあなたがyoutはApp
コンポーネントでthis.props.relay.repository
を使用して、クエリ応答にアクセスする必要がフラグメントのvariables
にアクセスする
理にかなっているが、私はまだ 'TypeError例外を取得しています:undefined'のプロパティ「問題」を読み取ることができませんが。私の反応がエイリアスになっていることと何か関係がありますか? '{" data ":{" relay ":{" _ repository41jr1f ":'これがなぜ特定のプロパティに起こっているのかわかりません。 – Trenton
Relayコンテナまたは内部コンポーネントのデータにアクセスしようとしていますか?あなたの出力に基づいて、それが属していないRelayコンテナにアクセスしようとしているようです。 Relayコンテナは、クエリが終了すると、内部コンポーネントにデータを渡します。 – marktani