我在設定react路由器時遇到了一些麻煩,希望得到一些建議。我有一個有多個頁面的應用程式,我想讓這個應用程式在url中顯示我所在的頁面,并能夠通過url轉到特定的頁面。但我似乎不能讓它作業。
路線路徑是。
<Route path="/page/{:id}" component={Body}。/>
它正在呼叫Body,這是我的主要Class組件,大部分的代碼和邏輯都在這里。但我所看到的大多數執行緒和教程都使用了useEffect或useParams,這在類組件中是無法實作的。
這個應用程式很簡單,它所做的只是在不同的頁面之間進行轉換,并在每個頁面上呼叫 api 以獲得不同的文本和按鈕編號。
所以我現在所做的是,我有一個Link標簽包裹著我的按鈕和頁碼 按鈕: 而且它看起來就是很不完整。我試著使用useParams,但是不能讓它作業。
uj5u.com熱心網友回復: 把這個添加到你的Body Component中,這樣當id param改變時,你的頁面就會被更新,并且也會更新你的localStorage
標籤: 上一篇:從URL獲取回傳值
下一篇:將父類添加到URL中(PHP)
<Link key={index} to={`/page/${links.label}`}>/code>。這些按鈕是在一個單獨的功能組件中。我看到url的變化是基于我所在的頁面。但是我想把它設定成我可以直接輸入網址。
const renderPageNumbers = apiPagingSliced. map((links, index ) => {
return < Link key={index} to={`/page/${links. label}`}>
<button key={index} id={links.label}
onClick={props.handleClick}。
>{links.label}。
</button>{links.label}。
</Link>>
})
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
componentDidUpdate(prevProps, prevState, snapshot) {
if(prevProps){
if(prevProps.match.params.id! == this.props.match.params.id){
const id = this.props。 match.params.id。
localStorage.setItem("currentPage"/span>, id)
this.setState( {
currentPage: id})。)
this.fetchApi(id)。
}
}
}
