如何更新查看器等根节点?

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 问题是关于重置本地存储的。这有什么关系?

以上是关于如何更新查看器等根节点?的主要内容,如果未能解决你的问题,请参考以下文章

unity修改动画节点所在时间点

flutter: 根视图根元素与根渲染

给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用

如何从 jsTree 隐藏根节点?

如何在现有 GraphQL 服务器上添加根和查看器查询以支持中继

并查集