Relay.js - 没有收到道具,只有__dataId__

Alb*_*mec 6 javascript relay reactjs graphql-js

所以我想弄清楚Relay.js.我想到了一个简单的应用程序,它基本上模仿了Relay网站上的例子.虽然我已经设法摆脱了两个控制台(节点和chrome)中的错误,但我的组件没有收到我在Raley.Container中指定的片段.我不知道问题出在哪里,因为我的应用程序看起来非常像Relay的例子.

请注意,map方法on this.props.companies不可用,因为它是一个具有1个属性的对象,即__dataId__.

第一部分

class App extends React.Component {
  render() {
    return (
      <div>
        {this.props.companies.map((comapny => <Company company={company} />))}
      </div>
    );
  }
}

export default Relay.createContainer(App, {
  fragments: {
    companies: () => Relay.QL`
      fragment on Companies {
        companies { ${Company.getFragment('company')} }
      }
    `,
  },
});
Run Code Online (Sandbox Code Playgroud)

第二部分

class Company extends React.Component {
  render() {
    return (
      <div>
        <h1>{this.props.comapany.name}</h1>
      </div>
    );
  }
}

export default Relay.createContainer(Company, {
  fragments: {
    company: () => Relay.QL`
      fragment on Company {
        __id,
        name
      }
    `,
  },
});
Run Code Online (Sandbox Code Playgroud)

和我的路线

class AppHomeRoute extends Relay.Route {
  static routeName = 'Comapnies';
  static queries = {
    companies: (Component) => Relay.QL`
      query {
        companies { ${Component.getFragment('companies')} }
      }
    `,
  };
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?