- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用<Mutation />
具有 Render Prop API 并尝试在 UI 中执行乐观响应的组件。
到目前为止,我在 _onSubmit
中有这个 block 功能-
createApp({
variables: { id: uuid(), name, link },
optimisticResponse: {
__typename: "Mutation",
createApp: {
__typename: "App",
id: negativeRandom(),
name,
link
}
}
});
还有我的<Mutation />
组件看起来像 -
<Mutation
mutation={CREATE_APP}
update={(cache, { data: { createApp } }) => {
const data = cache.readQuery({ query: LIST_APPS });
if (typeof createApp.id == "number") {
data.listApps.items.push(createApp);
cache.writeQuery({
query: LIST_APPS,
data
});
}
}}
>
{/*
some code here
*/}
</Mutation>
我知道update
函数位于 <Mutation />
运行两次,一次在 optimisticResponse
时运行当服务器响应返回时第二次运行。
第一次,我给他们 id
作为number
。结账createApp
在optimisticResponse
哪里id: negativeRandom()
这就是为什么我的 update
支持<Mutation />
组件检查是否 createApp.id
是 number
然后将其插入数组中。这意味着如果数据从本地返回,则将其推送到本地缓存中,如果从服务器返回,则不推送它。
但是发生的情况是数据仅在从服务器返回时显示。函数update
运行两次,但它不会将其插入数组中。
我认为可能存在 3 个问题 -
要么 update
推送本地状态时函数不会运行
我尝试过制作 fetchPolicy
等于 cache-and-network
& cache-first
但它也不起作用。
__typename
在optimisticResponse
。我不知道如果Mutation
是正确的值,所以我尝试了 AppConnection
也一样,但还是不行。
完整代码可见here 。整个代码存在于one file中为了简单起见。它是一个非常简单的应用程序,有 2 个输入和 1 个提交按钮。看起来像 -
最佳答案
显然这是 Apollo 或 React Apollo 包中的一个错误。不知道哪个错误或者只是针对 React Native,但我只是更新了我的依赖项并在不更改任何代码的情况下解决了它
您可以在 https://github.com/deadcoder0904/react-native-darkmode-list 查看完整代码
关于reactjs - Apollo Optimistic UI 在 Mutation 组件中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50603994/
我觉得问这个问题有点愚蠢,但为了把事情弄清楚,有时必须问一些愚蠢的问题:) 因此,我们可以像 Martin Kleppmann 在他的演讲中所做的那样定义写入偏差: Write skew patter
当使用乐观锁定策略时,可以解决如下并发问题: | the first transaction started ||
我正在尝试安装 angular phone cat 应用程序并使用 karma 测试运行器运行测试用例。我安装了 Node v0.10.33。我已经在全局范围内安装了 karma 。现在,我尝试使用“
首先,我知道有很多关于该主题的已发布问题:1 2 3 4 5 .建议的方法和原因: Marshal.SizeOf() 1 - 不适用于托管类型。 GC.GetTotalMemory 1 2 - 容易出
在我的 React 应用程序中,我使用数据库 ID 作为键来渲染从服务器返回的项目数组。 items.map(item => ) 这工作正常,但现在我想做乐观更新,所以我在将新项目提交到服务器之前将其
所以我正在阅读 Optimistic UI这是我想在我的 android java 应用程序中实现的东西。 我的 Android 应用程序与我的其余 api 连接。我的困惑是我该怎么做? 我有一个产品
在思考 BitTorrent 的工作原理时,我想到了几个问题。如果有人可以分享一些可能的回应,将不胜感激。 假设一个 BitTorrent 从跟踪器获得 50 个对等点,然后与其中的 20 个建立连接
我正在调试使用 JPA/Hibernate 和 Postgres (9.6.2) 的 Java 应用程序的奇怪行为。 应用程序有 3 个实体:User、Country、UserEvent。 Hiber
我正在尝试使用 yargs 为 Node 模块编写 CLI但是我很难设置两个可以使用的不同命令,一个只需要一个参数,而另一个需要两个。这是我目前所拥有的 var argv = require('yar
我正在阅读 intro to redux pattern , 那里有以下段落: ... consider the new requirements becoming common in front-e
我正在使用具有 Render Prop API 并尝试在 UI 中执行乐观响应的组件。 到目前为止,我在 _onSubmit 中有这个 block 功能- createApp({ variab
尝试修复 Carto tool from Mapbox 的离线安装在 Ubuntu 14.04 上。目前, Node 给我一个错误,它找不到 optimist 模块。我可以手动找到一个 optimis
正在关注 the Apollo docs on Mutation components ,我有一个有效的 Mutation 组件,看起来像 Apollo 文档中提供的这个示例: { cons
我正在寻找一种让乐观的用户界面从列表中删除项目的方法。 列表的查询是: myQuery{ Foo:{ Bar:{ id } } 删除突变: mutation deleteBar(inp
我正在尝试测试我的应用程序的乐观锁定实现。然而结果并不是我所期望的。我测试的步骤如下 从数据库加载实体 将版本属性设置为比数据库中存在的版本属性小 1 将另一个只是字符串的属性更改为其他内容 保存实体
我是 optimist 的新手我做了一些谷歌搜索和尝试,但我仍然找不到添加 --help 选项的优雅方法。 我看到一个 help()文档上的选项。有了这个,我希望以下工作: var argv = re
使用 React.js 真的很愉快。 我根据官方教程搭建了一个简单的评论应用。 您可以添加、编辑和删除评论。它们每 10 秒通过 GET 拉取一次。 本教程有一次提到乐观更新:在创建、更新或删除操作的
我们使用 SendGrid API 将敏感电子邮件发送到 Office365 托管的电子邮件地址。默认情况下,这两种服务都使用机会性 TLS,这反过来会让您相信电子邮件始终会使用 TLS 进行加密。
有一个实体 Foo 带有 @Version 列。如果我想删除它,我希望 Spring Data JPA 和/或 Hibernate 检查 @Version 列的当前值是否与数据库中的值匹配。如果不是,
static boolean unsynchronizedSetter(Date expected){ Date newDate = new Date(); AtomicReferen
我是一名优秀的程序员,十分优秀!