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

时间:2016-10-10 13:45:06

标签: javascript reactjs relay graphql-js

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

请注意,this.props.companies上的map方法不可用,因为它是一个具有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')} }
      }
    `,
  },
});

第二部分

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

我的路线

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

有什么想法吗?

0 个答案:

没有答案