加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-router 与react-reduct 配合使用时,页面不刷新问题

发布时间:2020-12-15 06:47:39 所属栏目:百科 来源:网络整理
导读:参考文档:https://reacttraining.com/react-router/core/guides/redux-integration/blocked-updates 异常现象点击Link url 变化但是页面不更新 出现此问题的条件: 1.使用了react-reduct 的connect 2.Router与Root 之间有 有layout布局 元素 解决办法:with

参考文档: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') ) 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读