react-router 与react-reduct 配合使用时,页面不刷新问题
来源:互联网 发布:mysql 命令行导入 编辑:程序博客网 时间:2024/06/05 16:56
参考文档:https://reacttraining.com/react-router/core/guides/redux-integration/blocked-updates
异常现象点击Link url 变化但是页面不更新
出现此问题的条件:
1.使用了react-reduct 的connect
2.Router与Root 之间有 有layout布局 元素
解决办法:withRouter 包裹组件
原因:react-reduct shouldComponentUpdate 没有接收到任何属性改变,因此不再重新绘制页面
var Home = withRouter (connect()(() => <Link to={"Cal"}>Home 点击到子页面</Link>))var Cal = withRouter( connect()(() => <div>Cal <Link to={"/Home"}>回到首页</Link></div>))var Layout =withRouter ( connect()((props) => <div>头{props.children}尾</div>))
异常代码如下
import React from 'react'import ReactDOM from 'react-dom'import {createStore} from 'redux'import {Provider, connect} from 'react-redux'import {Route, Switch, Link, BrowserRouter as Router} from 'react-router-dom' ;const store = createStore( function* (state, action) { return state })var Home = connect()(() => <Link to={"Cal"}>Home 点击到子页面</Link>)var Cal = connect()(() => <div>Cal <Link to={"/Home"}>回到首页</Link></div>)var Layout = connect()((props) => <div>头{props.children}尾</div>)ReactDOM.render( <Provider store={store}> <Router> <div> <Layout> <Switch> <Route exact path="/Home" component={Home}/> <Route path="/Cal" component={Cal}/> </Switch> </Layout> </div> </Router> </Provider>, document.getElementById('root'))
阅读全文
0 0
- react-router 与react-reduct 配合使用时,页面不刷新问题
- react-router与react-reduct配合使用时页面不刷新问题解决方法
- ReactJS与antdDesign中页面跳转问题(React Router)
- React-Router与Tomcat
- react-router 使用
- React Router 使用教程
- React Router 使用教程
- React Router 使用教程
- React Router 使用教程
- React Router 使用教程
- React Router 使用教程
- React Router 使用教程
- React Router 使用教程
- React Router 使用教程
- React-Router使用
- react-router使用总结
- React Router 使用教程
- React Router 使用教程
- NVDIMM原理与应用之四:NVDIMM的数据恢复、使用和监控
- Springboot整合freemarker
- 【最大流 && 映射】POJ
- jstl总结
- 2017.9.23总结1-密码
- react-router 与react-reduct 配合使用时,页面不刷新问题
- C++多态性(二)
- keil调试时数组数值显示truncated
- 实验二 命令行菜单小程序V1.0
- <DP版>codevs 3304 水果姐逛水果街Ⅰ
- SQL中的事务
- Error using == vertcat CAT arguments dimensions are not consistent.
- Implement Queue using Stacks
- spring boot启动器