如何更新查看器等根节点?
Posted
技术标签:
【中文标题】如何更新查看器等根节点?【英文标题】:How to update root node such as viewer? 【发布时间】:2016-02-14 05:20:26 【问题描述】:当用户使用UpdateUserSessionMutation
登录时,我正在尝试更新根节点的viewer
字段。但是,由于查看器以 null 开头并且最初没有 id,因此我无法使用 FIELDS_CHANGE
使用 MutaitonPayload 更新查看器字段。
【问题讨论】:
我不知道为什么我被否决了这里是一个可以帮助其他人的答案:github.com/facebook/relay/issues/233 【参考方案1】:当您想要更新存储在数据库中的数据时,会使用突变。用户登录不会更改任何数据库数据,因此变异不是正确的方法。
viewer
用于表示当前登录的用户。跟踪它的常见做法是授权令牌。当用户登录时(这通常在 GraphQL 之外完成),您将在每个请求中包含他们的令牌。在服务器上,您将查看该令牌,并将当前用户设置为根viewer
节点该请求,您可以使用rootValue
来执行此操作。
【讨论】:
好吧,我们的用户会话存储在数据库中...但是,即使您是正确的,我的问题也得到了一位 FB 开发人员的回答:github.com/facebook/relay/issues/233 GH 问题是关于重置本地存储的。这有什么关系?以上是关于如何更新查看器等根节点?的主要内容,如果未能解决你的问题,请参考以下文章
给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用