调用 forceFetch() 时出错

Error when calling forceFetch()

我试图在收到服务器端推送通知后使用 forceFetch() 更新 UI,但我在浏览器控制台中收到以下错误 (no网络上的实际 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,但我的 none 尝试成功了。

我做错了什么?

原来我看错了地方(浏览器),而实际上错误来自服务器。

有人向我指出(感谢 Discord 用户组!)此表单中出现的错误总是来自服务器。

具体来说,args 是 GraphQL 模式中 resolve 函数的第二个参数。事实证明,我的 globalID to object 函数(nodeDefinitionsgraphql-relay 导入)由于解析函数的复制和粘贴错误而出错,其中确实有一个 args 参数现在不见了。