Javascript React/React路由器,检查它是否';这是第一次导航到某条路线

Javascript React/React路由器,检查它是否';这是第一次导航到某条路线,javascript,reactjs,react-router,Javascript,Reactjs,React Router,在我的React应用程序中,我有: 如果您从/索引路径开始,将出现一个启动页面,您可以单击关闭启动并转到主页内容 如果您从任何其他路线开始,启动页不会出现,当您从这些页面转到/路线时,启动页仍然不会出现 在这两种情况下,我都希望在主页上的一些窗口事件侦听器发生后(即,在单击启动页后或从另一页导航到索引页后)初始化它们 目前,我实现这一点的方法是在Redux中保留一个loadState变量 如果我从/路径开始,单击启动页面将加载状态设置为“已加载”,并且侦听器将在组件的生命周期内进行设置 如果我从

在我的React应用程序中,我有:

  • 如果您从
    /
    索引路径开始,将出现一个启动页面,您可以单击关闭启动并转到主页内容

  • 如果您从任何其他路线开始,启动页不会出现,当您从这些页面转到
    /
    路线时,启动页仍然不会出现

  • 在这两种情况下,我都希望在主页上的一些
    窗口
    事件侦听器发生后(即,在单击启动页后或从另一页导航到索引页后)初始化它们

    目前,我实现这一点的方法是在Redux中保留一个
    loadState
    变量

  • 如果我从
    /
    路径开始,单击启动页面将
    加载状态设置为“已加载”,并且侦听器将在
    组件的生命周期内进行设置

  • 如果我从任何其他路线开始,在
    componentDidMount
    上,
    loadState
    将设置为“已加载”。然后,如果我导航到
    /
    路径,侦听器将在
    componentDidMount
    上设置,因为我们检查
    loadState
    是否为“已加载”


  • 但是,我想知道是否有办法避免这两个函数。如果
    componentWillUpdate
    在初始渲染时运行,这将非常理想,因为这样可以避免在
    componentWillMount
    生命周期内进行冗余检查。更好的选择是,如果React Router有一个内置的生命周期,即最初渲染路由的时间

    也许你可以搜索路由历史?什么版本的react路由器?在v3中,你可以向浏览器历史添加一个回调。听着,我同意这正是路由器应该内置的东西。即使在Github上,人们也会建议使用您自己的状态解决问题,甚至创建另一个第三方包,而将每条路由作为实际上负责路由的路由器的内置功能推送到阵列中是100%合理的。