【发布时间】:2017-07-17 14:59:50
【问题描述】:
我正在使用 react-router-4.0.0-beta.4 和 redux,我正在尝试找出在路由更改时调度操作的最佳方式。我看到几个版本之前有一个用于此here 的 API/事件挂钩。但我看到它现在已经消失了。尝试做与 redux-router 所做的现代等价物。
【问题讨论】:
标签: reactjs react-router react-redux
我正在使用 react-router-4.0.0-beta.4 和 redux,我正在尝试找出在路由更改时调度操作的最佳方式。我看到几个版本之前有一个用于此here 的 API/事件挂钩。但我看到它现在已经消失了。尝试做与 redux-router 所做的现代等价物。
【问题讨论】:
标签: reactjs react-router react-redux
似乎调度操作的最佳方式是在组件的componentWillMount()、componentDidMount() 或componentWillUnmount() 方法中这样做。
忽略下面的内容
有onEnter 道具。喜欢这里comet-frontend
onEnter(下一个状态、替换、回调?)
在即将进入路线时调用。它提供了下一个 路由器状态和重定向到另一条路径的功能。这将成为;这将是 触发钩子的路由实例。 https://github.com/ReactTraining/react-router/blob/master/docs/API.md#onenternextstate-replace-callback
但是,仍然有 onChange 道具,完全按照您的描述进行。也许告诉我们你的问题到底是什么。因为好像你做错了什么。
【讨论】:
onChange 道具,但它似乎没有用。如果BrowserRouter 有一个用于位置更改的“全局”挂钩,那就太好了。
因此,您必须将主应用程序组件包装在 withRouter 中,并根据 withRouter 传递的 props 中的 props 变化做出反应,例如 props.location.pathname。
你可以在这里看到关于它如何工作的讨论https://github.com/ReactTraining/react-router/issues/4603
【讨论】: