この React/Relay/GraphQL アプリには、単純なコンテナーApp
と 1 つのネストされたインデックス ページがありますEntriesPage
。はApp
をリクエストし、 はやのリストなどのviewer
追加フィールドをリクエストします。id
EntriesPage
viewer
name
entries
GraphQLに送信されるクエリ フラグメントには、追加のフィールドがEntriesPage
正しく含まれていますが、接続がありません。name
entries
entries
フラグメントで指定された が無視されているのに、name
喜んで含まれ
ている理由はありますか? https://dl.dropboxusercontent.com/u/891448/queries.png
で同様のクエリを実行すると、GraphiQL
適切な結果が返されます。
ルート:
export default (
<Route
path="/"
component={App}
queries={ViewerQueries}
>
<IndexRoute
component={EntriesPage}
queries={ViewerQueries}
/>
</Route>
);
App.js
class App extends React.Component {
render() {
const { children } = this.props;
return (
<div className="container-fluid">
{children}
</div>
);
}
}
export default Relay.createContainer(App, {
fragments: {
viewer: () => Relay.QL`
fragment on User {
id
}
`
},
});
エントリーページ:
class EntriesPage extends React.Component {
render() {
const { viewer } = this.props;
const entries = viewer.entries.edges.map(e => e.node);
return (
<div className="row">
<div className="col-sm-3">
<EntryList entries={entries} />
</div>
<div className="col-sm-9">
</div>
</div>
);
}
}
export default Relay.createContainer(EntriesPage, {
fragments: {
viewer: () => Relay.QL`
fragment on User {
id,
name,
entries(first:10) {
edges {node {id}}
}
}
`
}
});