我尝试在Fetch
请求之后使用React路由器从Redux操作创建者进行重定向。
我使用browserHistory
方法从动作创建者那里推送,如下所示:
import { browserHistory } from 'react-router';
...
browserHistory.push('/summary');
这给了我两个问题:
1)历史记录basename
未加前缀。
配置路由器历史记录时,我设置了basename
值:
useRouterHistory(createHistory)({
basename: '/foo'
});
但browserHistory.push('/summary')
并不是basename
为网址添加前缀的basename
。我受到历史文档(https://github.com/reacttraining/history#using-a-base-url)的印象,它会加上前缀。
作为第一期的临时解决方法,我刚刚将push
硬编码到push
。我的下一个问题是哪个游戏。
2)网址在浏览器中更新,但网页不会重新呈现。
如果我在Build Setting
发生后刷新页面,那么页面会呈现正确的路线,但似乎推送不会触发状态更改以强制渲染。
我确实遇到了这个react-router-redux,但是阅读文档后,听起来似乎没有必要去做我之后的事情:
将Redux与React一起使用不需要此库 路由器。您可以将两者一起使用,而无需任何额外的 库。如果你关心录音,坚持和 使用时间旅行重放用户操作。如果你不在乎 这些功能,只需直接使用Redux和React Router。
任何人都可以看到我出错的地方吗?我确定它只是我想念的东西而不是错误。
我目前正在使用:
答案 0 :(得分:1)
为了在网址更改时重新加载页面,页面组件需要从react-router接收历史记录或位置道具。 所以在道具中添加一个或另一个。
答案 1 :(得分:0)
就我而言,移动前页面中有错误。 这是与生命周期有关的错误。 纠正错误后,我们确认正常运行。 对componentWillUnmount要特别小心。 否则,请查看routerReducer和syncHistoryWithStore。