Reactjs 如何使用户界面响应Apollo中的订阅
我使用Reactjs 如何使用户界面响应Apollo中的订阅,reactjs,graphql,subscriptions,apollo,react-apollo,Reactjs,Graphql,Subscriptions,Apollo,React Apollo,我使用react apollo作为客户端与我创建的GraphQL服务器进行通信。我成功地获得了使用data.subscribeToMore()函数的订阅,如中所述,当我在两个窗口内运行web应用程序时,会显示最新数据。我想做的是,当另一个客户端更改我当前查看的数据时,会显示一个通知警报,这样我就可以在我不注意的情况下知道发生了什么变化?正确的做法是什么 更新方法 updateQueries方法 dataFromObjectId和refetchQueries字段似乎与我尝试执行的操作无关。因为
react apollo
作为客户端与我创建的GraphQL服务器进行通信。我成功地获得了使用data.subscribeToMore()
函数的订阅,如中所述,当我在两个窗口内运行web应用程序时,会显示最新数据。我想做的是,当另一个客户端更改我当前查看的数据时,会显示一个通知警报,这样我就可以在我不注意的情况下知道发生了什么变化?正确的做法是什么
方法更新
方法updateQueries
dataFromObjectId
和refetchQueries
字段似乎与我尝试执行的操作无关。因为我使用的是redux,有没有一种方法可以直接从订阅中发送操作?通知警报是我必须使用的client.subscribe()
吗?假设您使用的是最新版本的Apollo,您应该为组件提供一个名为“updateQuery”的道具,该道具包含处理数据的逻辑
本节介绍了您需要执行的操作,但实际上“updateQuery”函数应该执行以下操作:
argumentName.data
(prev, { subscriptionData }) => {
if (!subscription.data) {
//If no new data, return old results
return prev;
}
var newResults = Object.assign(
{},
prev,
queryName: { [subscriptionData.data, ...prev[queryName]] }
);
return newResults;
我没有其他方法可以让它在1.x下工作