首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新执行relayjs查询

重新执行relayjs查询
EN

Stack Overflow用户
提问于 2016-03-10 14:20:27
回答 1查看 180关注 0票数 2

我正在我的网站上开发一个聊天功能,我正在开发Reactjs和Relayjs。

我可以在我的视图中成功地查询和显示相关数据(聊天消息)。但是,即使聊天伙伴发送了一条新消息,视图仍然是静态的。

我正在寻找实现这一点的方法,要么检查数据库更改,要么间隔执行相同的查询,然后获取更改(如果有的话)。

中继文档似乎没有描述如何做到这一点。我第一次考虑的是创建一个虚拟突变,它什么也不做,这样数据就会被重新获取,从而更新视图。然而,这不仅看起来是一个糟糕的实现,而且可能无法工作,因为突变只会返回更改,而不是整个结果集。

如果可能的话,我宁愿不使用第三方图书馆。

这是我的中继器:

代码语言:javascript
复制
export default Relay.createContainer(StartConversationModal, {
  prepareVariables() {
    return {
      limit: 1000,
    };
  },
  fragments: {
    conversation: () => Relay.QL`
      fragment on Conversation {
        id,
        title,
        type,
        conversationDataList(last: $limit) {
          edges {
            node {
              last_read_message_id,
              member {
                id,
                user {
                  firstname,
                  lastname
                }
              }
            }
          }
        },
        messageList(last: $limit) {
          edges {
            node {
              id,
              message,
              sent_on,
              member {
                id,
                role,
                user {
                  firstname,
                  lastname
                }
              }
            }
          }
        },
        task {
          title,
        },
        ${AddMessageMutation.getFragment('conversation')},
      }
    `,
  },
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 15:06:10

要重新获取容器的所有片段,可以使用RelayContainer提供的命令式RelayContainer API,请参阅文档

基本上,在StartConversationModal内部,您可以设置一个计票器,将forceFetchthis.props.relay上调用。请注意,这将重新获取整个连接,这可能不是您想要的,您必须对它进行实验。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35919036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档