我正在尝试使用forceFetch()在收到服务器端推送通知时更新UI,但我在浏览器控制台中收到以下错误(网络上没有实际的graphql查询编辑:查询实际到达服务器):
Server request for query Main failed for the following reasons:
1. args is not defined
query Main{node(id:"QWNjb3VudDow"){...F1}} fragment F0 on Si
^^^
以下是代码的简化部分:
@relayContainer({
fragments: {
account: () => Relay.QL` fragment on Account {
id
userInSite {
id
site {
id
name
}
}
}`,
},
})
class SiteSettings extends Component {
render() {
return <div>
{this.props.account.userInSite.site.name}
</div>;
}
componentWillMount() {
setTimeout(() => this.props.relay.forceFetch(), 2000);
}
}
我不确定args
指的是什么。我尝试将参数传递给forceFetch
,但我没有尝试过。
我做错了什么?
答案 0 :(得分:1)
事实证明,当错误来自服务器时,我正在寻找错误的地方(浏览器)。
有人向我指出(感谢Discord用户组!),此表单中出现的错误始终来自服务器。
具体来说,args
是GraphQL架构中resolve
函数的第二个参数。事实证明,我的globalID到对象函数(从nodeDefinitions
导入的graphql-relay
)由于来自解析函数的错误复制和粘贴而出现错误,其中确实存在args
参数现在不见了。