我们在一个相当大的 React 站点上广泛使用了 ReactQuery,而且它运行良好,但我们最近看到了非常奇怪的行为,这种行为只发生在 Chrome 上,而且很少发生。对于useQuery我们每次调用,queryFn我们传入的内容永远都不会被调用。我通过以queryFn日志记录开始该函数来验证这一点,这在 Chrome 上从未发生过。 enabled被硬编码为true. 在 Edge 和 Firefox 上,日志记录发生,代码运行,应用程序一直都很好。我在 Chrome 之外还没有遇到过这个问题。我知道useQuery被调用是因为可以在reactQuery devtools中看到密钥。由于问题是在我的机器上开始的,所以它的发生完全一致,但目前仅在这台特定的机器上。团队中没有其他人可以复制它。此前,一位客户报告了同样的问题(同样仅在 Chrome 上),我们的各种故障排除(清除所有本地存储等)在问题自行解决之前没有取得成果。它以常规和隐身模式发生在我的本地主机服务器以及我们的开发服务器上,并且在清除本地存储、重新启动本地服务器、浏览器和计算机之后发生。无论如何,我们不会在本地保留任何reactQuery 缓存。升级到reactQuery 4.24.9 没有什么区别。团队中使用相同 Chrome 版本(Mac M1 版本相同)的同一开发服务器上没有其他人遇到此问题。如果有人觉得这听起来很熟悉,请插话。
查看 JSON 函数的 postgres 文档(https://www.postgresql.org/docs/9.6/static/functions-json.html),有一个部分我不明白如何将 JSON 对象扩展为一组行。
文档给出了此函数的示例用法json_populate_recordset(base anyelement, from_json json):select * from json_populate_recordset(null::myrowtype, '[{"a":1,"b":2},{"a":3,"b":4}]')
但我不确定第一个参数(null::myrowtype)是什么——表定义?
该函数的描述是:将from_json中最外层的对象数组扩展为一组行,其列与base定义的记录类型匹配(见下面的注释)。
底部的注释似乎都不相关。我希望通过示例代码得到更好的解释来理解这一切。