Graphcool 登录后更新 Relay 存储
Posted
技术标签:
【中文标题】Graphcool 登录后更新 Relay 存储【英文标题】:Updating Relay store after Graphcool sign in 【发布时间】:2017-03-07 17:57:20 【问题描述】:作为我的 webapp 身份验证流程的一部分,我设法在我的 Graph.cool 后端创建了一个用户,现在需要登录(这是一个两步过程,正如 here 所讨论的那样)。这使用了signinUser
突变,我已经成功设置了here。但是,我不知道如何配置突变的getFatQuery()
/getConfigs()
,以便查看器用户数据在中继存储中正确更新并传播。例如,页眉 (ViewerWidget
) 不会自动更新,但如果我重新加载页面,则会显示正确的信息。
【问题讨论】:
【参考方案1】:Relay 跟踪正在(或曾经)渲染的组件的所有数据需求。发送突变时,它还会查询所有可能更改的数据(通过 FatQuery 给出)并被跟踪。换句话说,如果您的突变的 FatQuery 包含 Relay 尚未跟踪的节点/字段,它们将不会包含在突变的查询中(因为需要该数据的组件只会在第一次渲染时简单地请求它时间)。
REQUIRED_CHILDREN
强制突变查询某些字段,即使它们没有被跟踪。对于需要在 Relay 之外处理数据的情况,它实际上只是一个逃生口。它是 Relay,就像 ref
是 React。
graphcool API 为您提供了一个带有 ID 的查看器根字段。字段用户应该可以有一个 FIELDS_CHANGE
突变(带有查看者 ID)。
【讨论】:
以上是关于Graphcool 登录后更新 Relay 存储的主要内容,如果未能解决你的问题,请参考以下文章