gpt4 book ai didi

relayjs - 如何在不推送到服务器的情况下更新中继存储

转载 作者:行者123 更新时间:2023-12-04 16:47:00 25 4
gpt4 key购买 nike

我的 React/Relay 应用程序中有一个表单,用于修改某些字段。我不想每次在输入中输入新字母时都发送服务器更新。如何在不总是推送到服务器的情况下使用 Relay 来支持应用程序状态?通读了大部分 Relay 文档后,在我看来,我必须基本上将 Relay 状态复制到我的表单的本地状态或其他 Flux 存储,在那里处理更改,然后将其提交到 Relay。尽管只是为了保持本地状态,但这似乎需要做很多额外的工作。

最佳答案

Relay 当前版本是 graphQL 和 React 之间的粘合剂,它只处理来自服务器的数据。


...it seems to me that I have to basically copy the Relay state either to the local state of my form...

我看不出问题所在。 React 的工作方式要求您为整个表单或每个输入单独存储 state

如果您添加编辑功能(呈现表单并获取数据以填充输入以供用户更改它们),所有中继数据无论如何都可以在表单级别作为 this.props.RelayFragmentName 获得。

您将它传递给输入,然后将其分配给 state 并完成循环。您还可以直接从 props 提供输入(无需将数据分配给输入 state)并从输入通过 方法。

现在,当用户进行更改并确认时,您只需再次收集所有的state 即可进行更改。

我认为它是一个完整的圆圈,如果设置所有默认值,基本上是牢不可破的。


Relay 命令式 API 来直接获取、添加或更新缓存,但它相对脏且很少使用(尤其是对于本地状态)。它用于 WebSockets 等功能,您可以在其中将更新从服务器推送到客户端并手动更新缓存。

Current Relay 仅用于处理服务器数据。中继 2 有一个本地缓存,但还没有出来。


如果我们谈论的是不同的事情,或者您可以使用一些代码示例,请告诉我。

关于relayjs - 如何在不推送到服务器的情况下更新中继存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com