我是继电器的新手,并且兴奋地使用它,但是我用我的代码卡住了差不多一天,并且不知道哪个有问题,这是非常简单的代码
这是我的查询路线
class UserRoute extends Route {
static paramDefinitions = {
userId: { required: true }
};
static queries = {
user_by_id: () => Relay.QL`
query {
user_by_id(id: $userId)
}
`
};
static routeName = 'UserRoute';
}
这是我的组件
class UserInfo extends Component {
render() {
console.log('this.props.user', this.props.user_by_id);
return (
<Text>name: {this.props.user_by_id.name}</Text>
)
}
}
这是继电器容器
UserInfoRelay = Relay.createContainer(
UserInfo,
{
fragments: {
user_by_id: () => Relay.QL`
fragment on User {
name
}
`
}
}
)
这是我的根容器
<RootContainer
Component={UserInfoRelay}
route={new UserRoute({userId: 5})}
renderFetched={(data) => <UserInfo {...this.props} {...data} />}
/>
返回的graphql查询是正确的
然而,我没有得到所需的道具,这是&#34;名称&#34;
我做错了什么?谢谢你的任何帮助,对我而言,接力是有希望的,但跳进去是相当流血的☠️☠️☠️☠️☠️☠️☠️☠️
祝你有个美好的一天
答案 0 :(得分:0)
解决方案是改变了这个
UserInfoRelay = Relay.createContainer(
UserInfo,
{
fragments: {
user_by_id: () => Relay.QL`
fragment on User {
name
}
`
}
}
)
进入
UserInfo = Relay.createContainer(
UserInfo,
{
fragments: {
user_by_id: () => Relay.QL`
fragment on User {
name
}
`
}
}
)
这确实有助于我获得所需的道具,但我不知道为什么,有人可以解释这个解决方案
干杯