在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5/ react-router@4.2.0嵌套的路由用this.props.histo

react-router@4.2.0嵌套的路由用this.props.history.push()路由改變了但是頁面卻沒更新

clipboard.png

clipboard.png

在外層路由用this.props.history.push()可以跳轉(zhuǎn)
在內(nèi)層的路由中用this.props.history.push(),網(wǎng)頁的路由地址變化了,但頁面卻不更新,但是用Link標(biāo)簽就更新。
不知道問題在哪兒,痛苦!

外層路由:

import React from 'react';
import {
    BrowserRouter as Router,
    Route,
    Link,
    Redirect,
    IndexRoute,
    BrowserRouter,
    Switch,
    browserHistory
} from 'react-router-dom'
const supportsHistory = 'pushState' in window.history

import Login from '../js/pages/login';
import Main from '../js/pages/main';
import Err from '../js/pages/err';


// 適配移動端
import MediaQuery from 'react-responsive';


export default class RouteRoot extends React.Component {
    updateHandle() {
        console.log('每次router變化之后都會觸發(fā)')
    }
    render() {
        return (
            <div>
                <MediaQuery query='(min-device-width: 1224px)'>
                    <BrowserRouter forceRefresh={!supportsHistory}  basename="/" forceRefresh={!supportsHistory} history={browserHistory}>
                        <Switch>
                            <Route exact path="/" component={Login}/>
                            <Route exact path="/main" component={Main} />
                            <Route exact path="*" component={Main}/>
                        </Switch>
                    </BrowserRouter>
                </MediaQuery>
                <MediaQuery query='(max-device-width: 1224px)'>
                    <div>移動端</div>
                </MediaQuery>
            </div>
        )
    }
}

內(nèi)層路由:


import React from 'react';
import {
    Route,
    Redirect,
    IndexRoute,
    BrowserRouter,
    Switch,
    browserHistory
} from 'react-router-dom';
import Err from '../js/pages/err';
import Main from '../js/pages/main';

import Home from '../js/components/home/home';
import OrderStatus from '../js/components/orderManage/orderStatus';
import OrderSearch from '../js/components/orderManage/orderSearch';

import Goods from '../js/components/shopManage/goods';
import Banner from '../js/components/shopManage/banner';

import Option1 from '../js/components/nav1/option1';
import Option2 from '../js/components/nav1/option2';
import Option3 from '../js/components/nav1/option3';

// 適配移動端
import MediaQuery from 'react-responsive';

export default class RouteMain extends React.Component {
    updateHandle() {
        console.log('每次router變化之后都會觸發(fā)')
    }
    render() {
        return (
            <div>
                <MediaQuery query='(min-device-width: 1224px)'>
                        <Switch>
                            <Route exact path="/main" component={Home} />
                            <Route exact path="/main/orderManage/orderStatus/:params" component={OrderStatus} />
                            <Route exact path="/main/orderManage/orderSearch/:params" component={OrderSearch} />

                            <Route exact path="/main/shopManage/goods/:params" component={Goods} />
                            <Route exact path="/main/shopManage/banner/:params" component={Banner} />

                            <Route exact path="/main/nav1/option1/:params" component={Option1} />
                            <Route exact path="/main/nav1/option2" component={Option2} />
                            <Route exact path="/main/nav1/option3" component={Option3} />
                            <Route exact path="/main/*" component={Err}/>
                        </Switch>
                </MediaQuery>
                <MediaQuery query='(max-device-width: 1224px)'>
                    <div>移動端</div>
                </MediaQuery>
            </div>
        )
    }
}

外層路由用this.props.history.push('/main')都能正常跳轉(zhuǎn),withRouter我也加了,就是內(nèi)層路由不行。
export default withRouter(connect(mapStateToProps)(Main));

回答
編輯回答
巴扎嘿

問題解決了嗎

2017年5月25日 16:37