所以我想弄清楚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')} }
}
`,
};
}
有什么想法吗?