[英]Whose job is it in Flux/React to set the page title?
假设我从Facebook的通量聊天示例开始。 有多个线程,每个线程都有消息。 我想编写代码,以便当我单击导航到另一个线程时,我会相应地更改页面标题。
谁设置页面标题?
现在让我们说我想更进一步,当用户收到新消息时,实现像Facebook一样闪烁的页面标题。 当有新消息进入时,它会通过一些Web套接字或AJAX响应处理程序来实现。
现在谁设置页面标题?
但是当我这次设置标题时,我需要知道有多少未读消息。 我不知道这一点,直到行动被解雇并且所有商店都有更新的数据,所以看起来前两个选项都出来了。
编辑:
发布后,我发现这个要点似乎注册了调度员的回调,但不是商店。 这是正确的方法吗? 如果不是商店,你会怎么称呼这件事?
标题是应用程序状态的一部分,所以你需要一个商店来保存它,比如TitleStore
。 当它发生变化时,您需要对窗口应用更改:
TitleStore.on('change', function() {
document.title = TitleStore.getTitle();
});
或者您可以将其实现为React组件。 它将在mount上应用更改(或使用此模块: https : //github.com/gaearon/react-document-title )。
剩下的一件事:改变商店的行动。 你可能想要创建一个特殊的动作,比如SET_TITLE
,但这绝对是错误的。 操作应该是用户所做的事情,而不是您想要发生的事情。 相反,您应该使用现有的操作,如LINK_CLICKED
或THREAD_SELECTED
等。其他商店会相应地对此操作做出反应,您可以使用它们在waitFor
的帮助下更新标题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.