react-router
对onEnter
/ onLeave
的处理方式有some docs,但我不明白为什么遍历 up 树不会导致onEnter被触发?
例如,如果您有以下路线:
/
/profile
/profile/:username
从/
导航到/profile
到/profile/boogers
,onEnter将被触发3次。但是,如果您从/
或/profile
导航到/profile/boogers
,则不会触发?我希望进入一个新的路径始终触发onEnter事件,因为你要去一个新的url路径?
谢谢你的时间!
与this issue相关。
答案 0 :(得分:3)
路线被视为分层。当您第一次导航到/ profile onEnter
时,会在/ profile和/上触发。然后,当您从/ profile导航到/时,不会触发onEnter
,因为您认为您已经在该父路线中。
所以,我认为这在技术上是答案,但我也认为这是愚蠢的,恕我直言。它确实给你留下了一些严重的缺陷,OP已经在react-router的链接github问题中指出了这一点。
相关的是,如果你从/ users / a导航到/ users / b,根本就没有钩子。您实施componentWillReceiveProps
并查看userId
是否已更改的唯一选择。关注点分离不佳。更多信息:https://github.com/reactjs/react-router/issues/2547