【问题标题】:How to refetch query after subscription triggered?订阅触发后如何重新获取查询?
【发布时间】:2020-08-21 14:33:15
【问题描述】:

我在我的应用程序中维护订阅AddTaskSubscription。它按预期工作,我能够看到数据。

  const { data } = useSubscription(AddTaskSubscription, {
    onSubscriptionComplete: () => { },
    onSubscriptionData: () => {
      console.log('data');
    },
  });

我想在订阅成功返回数据时重新获取查询。

我在 useMutation 中播种 refetchQueries。我们对 useSubscription 有任何帮助吗?或者有什么方法可以做到这一点?

【问题讨论】:

  • onSubscriptionData 中的 writeQuery ... 与缓存更改数据相关的查询应在不调用 refetch 的情况下刷新

标签: javascript reactjs graphql


【解决方案1】:

我认为你需要一个每次有数据时运行的循环函数,所以我在 jsx 中查找循环并找到了这个。

var rows = [];
for (var i = 0; i < numrows; i++) {
    // note: we add a key prop here to allow react to uniquely identify each
    // element in this array. see: https://reactjs.org/docs/lists-and-keys.html
    rows.push(<ObjectRow key={i} />);
}
return <tbody>{rows}</tbody>;

如果我想尝试将它连接到您的代码,可能是这样的。




const index = ({ data }) => {

   let  subsData = []
    const [onSubscriptionData, setOnSubscriptionData] = useState({ });
    useSubscription(AddTaskSubscription, {
        onSubscriptionComplete: () => { },
        onSubscriptionData: () => {
            console.log('data');
            setOnSubscriptionData({ data })
        },
    })
    for (var i = 0; i < onSubscriptionData; i++) {
        subsData.push(<Data key={i} />);
    }
    return(
        <div>
            {subsData}
        </div>
    )
}

我不知道它是否有效,因为我无法测试它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-31
    • 2021-08-25
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多