2

この React/Relay/GraphQL アプリには、単純なコンテナーAppと 1 つのネストされたインデックス ページがありますEntriesPage。はAppをリクエストし、 はやのリストなどのviewer追加フィールドをリクエストします。idEntriesPageviewernameentries

GraphQLに送信されるクエリ フラグメントには、追加のフィールドがEntriesPage正しく含まれていますが、接続がありません。nameentries

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}}
        }
      }
    `
  }
});
4

0 に答える 0