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>  
            );  
        })}