您好,登錄后才能下訂單哦!
這篇文章主要介紹了react路由跳轉(zhuǎn)不刷新如何解決的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇react路由跳轉(zhuǎn)不刷新如何解決文章都會(huì)有所收獲,下面我們一起來看看吧。
react路由跳轉(zhuǎn)不刷新的解決辦法:1、在路由組件最上層元素上加一個(gè)key增加路由的識(shí)別度;2、使用withRouter關(guān)聯(lián)組件,代碼如“render() {return (<div key={this.props.location.key}></div>); }}export default withRouter(routers);”。
react 跳轉(zhuǎn)后路由變了頁面沒刷新
這樣的問題貌似原因還挺多的,我的問題是帶參數(shù)的url不能刷新,router 5.0版本 ,使用withRouter關(guān)聯(lián)組件進(jìn)行頁面跳轉(zhuǎn)
如下所示
在路由組件上最上層元素上加一個(gè)key增加路由的識(shí)別度,因?yàn)槠胀ǖ奶D(zhuǎn)是根據(jù)path來識(shí)別的,但是path帶上參數(shù)時(shí),路由無法精確識(shí)別。不過,在跳轉(zhuǎn)頁面的時(shí)候,每個(gè)地址都會(huì)在localtion對(duì)象里添加一個(gè)key。如下打印
// 組件掛載
componentDidMount() {
console.log(this.props.location);
}
我們將這個(gè)key綁定在 路由頂層元素上就能精確定位路由了
render() {
return (
{/*就是這個(gè)key*/}
<div key={this.props.location.key}>
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/products/:id" component={Products} />
<Route exact path="/about" component={About} />
<Route exact path="/solution" component={Solution} />
<Route
exact
path="/solutionDetails/:id"
component={SolutionDetails}
/>
<Route exact path="/download" component={Download} />
<Route path="/about" component={Download} />
<Route exact path="/details/:id" component={Details} />
<Route path="/contact" component={Contact} />
<Route component={ErrorPage} />
</Switch>
</div>
);
}
然鵝,可能你發(fā)現(xiàn) this.props為{} 空對(duì)象
那可能是因?yàn)槟銢]有使用withRouter關(guān)聯(lián)組件,關(guān)聯(lián)一下就好了。注意一點(diǎn),app.js無法關(guān)聯(lián),withrouter只能關(guān)聯(lián)路由組件或者app.js的子組件
import React, { Component } from "react";import {withRouter } from "react-router";class routers extends Component {
/**
* 生命周期函數(shù)
*/
// 組件掛載
componentDidMount() {
console.log(this.props.location);
}
render() {
return (
<div key={this.props.location.key}>
</div>
);
}}export default withRouter(routers);
關(guān)于“react路由跳轉(zhuǎn)不刷新如何解決”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“react路由跳轉(zhuǎn)不刷新如何解決”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。