我有這樣的反應+終極版應用陣營路由器鏈路使用參數不與componentDidMount和終極版愛可信數據的新數據刷新頁面獲取
我有它顯示的一些電影數據,從API獲取1層電影的組成部分。
因此,在底部,我決定添加一個類似的電影部分與幾個組件導航到新的電影頁面。
<div className="similar_movieS_container">
{ this.props.thisMovieIdDataSIMILAR.slice(0,4).map((movie,index)=>{
return(
<Link to={"/movie/"+movie.id} key={index}>
<div className="similar_movie_container">
<div className="similar_movie_img_holder">
<img src={"http://image.tmdb.org/t/p/w185/"+movie.poster_path} className="similar_movie_img" alt=""/>
</div>
</div>
</Link>
)
})
}
</div>
現在,當我在例如/toprated
根路線,我點擊一個<Link to={"/movie/"+movie.id} key={index}>
我獲得導航到特定的途徑(例如/movie/234525
),一切工作正常,但如果我在一個/movies/{some move ID }
路線我點擊一些<Link to={"/movie/"+movie.id} key={index}>
網址欄中的路線得到更新,但網頁保持靜止,這意味着什麼也沒有改變,如果我重新加載頁面與新的路線,新的movieID數據顯示...
這是我的應用程序.js
<BrowserRouter>
<Switch>
<Route path='/' exact component={Home} />
<Route path='/discover' exact component={Discover} />
<Route path='/toprated' exact component={TopMovies} />
<Route path='/upcoming' exact component={Upcoming} />
<Route path='/movie/:movieId' exact component={()=><Movie/>} />
</Switch>
</BrowserRouter>
和的Movie.jsx組件
...
componentDidMount() {
window.scroll(0, 0);
this.movieID = parseInt(window.location.href.split("/")[window.location.href.split("/").length-1]);
this.props.getMovieInfo(this.movieID);
this.props.getMovie_YOUTUBE(this.movieID);
this.props.getMovie_SIMILAR(this.movieID);
}
...
的componentDdidMount那麼,怎樣才能使一個導航到一個新的/movie/{movieID}
FOMR一個/movie/{movieID}
?
如果我申請你在這裏建議的修改,沒有數據獲取的頁面加載..我能做些什麼? –
你不需要替換componentDidMount函數,但添加componentWillReceiveProps函數 –
我設法使它與componentWillReceiveProps一起工作正常,但還有一件事是困擾着我...當我導航到新的/電影/電影ID路由器,我想回去我需要點擊後退按鈕兩次?爲什麼是這樣,有什麼想法? –