Reactjs 路由路径=“路径”/subject/:selectedSubject";通过<;导航时不更改主题;链接/>;
我正在尝试显示按主题筛选的文章。例如,当您直接访问Reactjs 路由路径=“路径”/subject/:selectedSubject";通过<;导航时不更改主题;链接/>;,reactjs,routes,react-redux,react-router,Reactjs,Routes,React Redux,React Router,我正在尝试显示按主题筛选的文章。例如,当您直接访问path=“/subject/:selectedSubject”(subject/TECH)时,它可以完美地工作。但是,如果您浏览,它将更改URL,但不会加载新文章 我尝试过:使用“withRouter”连接所有东西。 我知道正在更改redux状态,但是这并不是调用组件willmount(),而fetchArticles()就在这里 所以,我的问题是,我应该把fetchArticles放在哪里,以便在触发时调用它。我试着把它放在render()中
path=“/subject/:selectedSubject”
(subject/TECH)时,它可以完美地工作。但是,如果您浏览
,它将更改URL,但不会加载新文章
我尝试过:使用“withRouter”
连接所有东西。
我知道
正在更改redux状态,但是这并不是调用组件willmount()
,而fetchArticles()
就在这里
所以,我的问题是,我应该把fetchArticles放在哪里,以便在触发时调用它。我试着把它放在render()
中,但它一直被不停地调用。或者我用了错误的方法
PS:如果通过
调用另一个路径,例如path=“/”
,它将按预期工作(加载新文章)
应用程序/
<BrowserRouter>
<div>
<Route path="/" exact component={ArticlesList} />
<Route path="/subject/:selectedSubject" component={ArticlesList} />
</div>
</BrowserRouter>
在链接/
{this.props.subjects.map(subject => {
return (
<Link to={`/subject/${subject.name}`} key={subject.name}>
<li>
<span>{subject.name}</span>
</li>
</Link>
);
})}
{this.props.subjects.map(subject=>{
报税表(
{subject.name}
);
})}
因为您对/
和/subject/:selectedSubject
使用相同的组件,所以他没有调用生命周期方法,包括构造函数()
和组件安装()
您必须使用生命周期方法,尤其是处理组件的更新
{this.props.subjects.map(subject => {
return (
<Link to={`/subject/${subject.name}`} key={subject.name}>
<li>
<span>{subject.name}</span>
</li>
</Link>
);
})}