由于本地缓存,使用中继搜索不包括新结果



>我在 React 和 Relay 中实现了一个搜索即类型组件。它与使用中继的搜索功能大致相同

它按预期工作,但有一个例外。当我重新键入已在客户端上执行的搜索时,永远不会显示来自服务器的新结果。在这种情况下,我看起来中继总是转到本地缓存。

例如,假设我搜索了"foo",但没有找到任何结果。现在,几秒钟后,网站上的其他用户创建了这个"foo",但 Relay 永远不会查询服务器,因为对"foo"搜索的缓存响应是空结果。

此方案是否有模式或最佳做法?

查询如下。我调用这个.props.relay.setVariables来执行搜索:

initialVariables: {
    search: '',
    hasSearch: false
},
fragments: {
    me: () => Relay.QL`
        fragment on Viewer {
            relationSearch(search: $search) @include(if: $hasSearch) {
                ... on User {
                    username
                }
            }
        }
    `
}

答案似乎是将this.props.relay.forceFetch与搜索变量一起使用。

见 https://facebook.github.io/relay/docs/api-reference-relay-container.html#forcefetch

如果这不是最佳实践,有人纠正我。

相关内容

  • 没有找到相关文章

最新更新