我正在使用反應創建Web應用程序,目前我在導航頁面時遇到問題。以下是詳細的描述。希望有人能幫助我。使用反應時的URL路由問題
我的組件(任務)是這樣的(simplyfied)
class Tasks extends Component {
constructor(props) {
super(props);
this.type = props.match.params.type;
}
render(){
return (<h1>{this.type} </h1>);
}
}
而且如下
:
:
import {BrowserRouter as Router, Route, Switch, Redirect} from 'react-router-dom'
:
<Route path={"/tasks/:type/"} component={Tasks} />
最後我用我的反應路由器-DOM做路由從一個單獨的組件從我的導航菜單中的一個通過設置網址來調用此路由組件
import MenuItem from 'material-ui/Menu/MenuItem';
<MenuItem>
<Link name="application_creation" to="/tasks/type1">Type One</Link>
</MenuItem>
<MenuItem>
<Link name="application_creation" to="/tasks/type2">Type Two</Link>
</MenuItem>
在這個實現中,當我從導航菜單中選擇一個url時,它不能按預期工作。當選擇一個,然後選擇另一個時,它不按預期導航。如果我在瀏覽器上輸入網址或刷新頁面,它會指向正確的頁面(其他網址)。
希望我明確提出了我的問題:D。有人能指導我如何解決這個問題的正確方向嗎?
感謝
我會說'HashRouter'而不是'BrowserRouter' - 它會簡化開發過程,因爲它的工作方式與您所期望的一樣。一旦你開發你的應用程序,你可以考慮重新考慮'BrowserRouter'。 –
'return(
{this.type}
);' - 如果'props.type'發生變化,這將不會更新,因爲您只在構造函數 –中同步它,以迴應@DimitarChristoff所說的內容。根本不需要使用班級 – azium