2
我正在使用Reactjs和Relayjs开发我网站上的聊天功能。重新执行relayjs查询
我可以在我的视图中成功查询并显示相关数据(聊天消息)。但是,即使聊天伙伴发送新消息,该视图仍保持静态。
我正在寻找方法来实现这一点,无论是通过检查数据库更改或间隔执行相同的查询,然后获取更改(如果有的话)。
中继文档似乎没有描述如何做到这一点。我首先想到创建一个不做任何事情的虚拟变异,以便重新获取将更新视图的数据。但是,这不仅看起来像是一个糟糕的实现,而且可能不会起作用,因为变体只会返回更改,而不会返回整个结果集。
我宁可不使用第三方库,如果可能的话。
这里是我的继电器容器:
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')},
}
`,
},
});
嗯,我已经尝试过了。我会再试一次并回复你。谢谢。 – Chris
顺便说一下,订阅是“真正的”解决方案,这些只是尚未在Relay中构建。 – NevilleS
您可以查看本报告,了解如何使用订阅的示例:https://github.com/eyston/relay-chat-subscriptions。它特别是一个聊天应用程序,所以它似乎是主题 – NevilleS