url 更改时重新渲染组件的问题

Issue of re-rendering the component on url change

我是 React 新手,在执行任务时我在重新渲染组件时遇到了一些问题。

在我的导航栏上我有三个链接:Home, user and Courses.

如果用户单击“课程”(/courses?quick-courses=true#courses),该组件将呈现并显示课程列表(链接)。如果用户单击其中一个链接,例如“The Javascript”(/courses/3?title= Javascript),然后单击“课程”(/courses?quick-courses=true #courses) 再次来自导航栏,“课程”组件中的内容将不会再次呈现以显示课程内容列表。

我尝试使用 shouldComponentUpdate() 和 componentDidUpdate() 将 this.props.location.search 分配给状态以及许多其他方法来解决这个问题。但是它对我不起作用。

这是我的组件和我到目前为止所做的:components-assignment-3

非常感谢。

当您单击 /courses?quick-courses=true#courses 时,您会呈现这条路线 <Route path="/courses" component={Courses} />

此时,该路由已加载并挂载

然后单击 /courses/3?title= Javascript 并渲染 <Route path={"/courses/:id"} exact component={Course} />

现在点击 /courses?quick-courses=true#courses 不会重新渲染 <Route path="/courses" component={Courses} /> ,因为它已经渲染过,您已经在这条路线中了。这就是为什么 none 的生命周期钩子将再次触发 而你的 showCourse 将是 false 所以你不会看到 headerCheck ]