如果我在看电影
/movie/some-movie
并继续链接到
/movie/another-movie
组件不渲染
路线v4
路由器
<Route exact path="/movie/:urlRusLat" component={Movie} />
链接
<Link to={'/' + item.media_type + '/' + urlRusLat(item.title || item.name) + '-' + item.id} className="result-element" key={index}>
我尝试使用组件WillReceiveProps和发送请求,但我收到在道具新位置,像在nextProps.
componentWillReceiveProps(nextProps) {
console.log(this.props)
if (this.props.location.pathname !== nextProps.location.pathname) {
this.sendRequest();
}
}
componentDidMount() {
this.sendRequest();
}
componentWillUnmount() {
this.props.clearMovieData();
}
sendRequest = () => {
let movieId = this.props.location.pathname.split('-');
this.props.loadMovieData(movieId[1]);
}
如果路径更改,我如何发送请求,或再次渲染组件?
您可以使用componentDidUpdate()调用sendRequest()函数。现在你得到了更新的道具。但要确保你添加了一个检查旧道具。地点!=道具。进行sendRequest()调用之前的位置。
问题内容: 我正在尝试将表示性组件与容器组件分开。我有一个和一个。容器负责触发redux操作,以根据当前用户获取适当的网站。 问题是在最初呈现容器组件之后,异步获取了当前用户。这意味着容器组件不知道它需要重新执行其函数中的代码,该代码将更新数据以发送到。我认为我需要在其props(user)之一更改时重新渲染容器组件。如何正确执行此操作? 问题答案: 您必须在方法中添加条件。 该示例用于比较对象。
当按下{Link}并更改路由时,即使在react router dom的交换机组件之外,报头组件NavBar也会保持重新命名。 这里是文件: Main index.js文件: Home.js Contact.js 当前的项目非常简单:index.js文件包含Home和Contact组件,NavBar组件作为交换机外部的头。
我试图将表示组件与容器组件分开。我有一个和一个。容器负责触发redux操作,以基于当前用户获取适当的站点。 问题在于,在容器组件最初呈现之后,当前用户是异步获取的。这意味着容器组件不知道需要在其函数中重新执行代码,该函数将更新数据以发送到。我想当容器组件的一个道具(用户)发生变化时,我需要重新渲染它。如何正确地执行此操作?
我在一个应用程序的前端原型上工作,该应用程序具有给定的JS、React和CoreUI4 React技术栈。我来自Python背景,在网络开发和我给定的技术堆栈方面没有太多经验。当我不得不开始使用钩子时,这一点变得很明显。 问题 我真的不明白为什么它不更新我的和/或不渲染。我需要一个条件渲染,我也使用。 我试图: 从我的主应用程序中传递一个更大的状态,一旦我启动条件逻辑(挂钩规则)就无法工作。 当我
我对react还比较陌生,我一直在分解一个web应用程序,并用react组件替换部分。我现在正在开发一个组件,其中包含我创建的几个不同组件。 在新组件中,我在componentDidMount函数中进行API调用,并创建子组件。乍一看,一切看起来都很完美,但当我们在其中一个子组件中进行状态更改,然后在父组件中进行更改时,子组件将其状态重置为更改之前的状态。 我知道发生了什么,州政府没有被传递给家长
我有一个带有两组按钮(功能和目标)的界面。当我点击一个按钮时,我希望它从一个团队转到另一个团队。我正在用react和redux实现这一点。我唯一的问题是,当状态更新并且我成功地记录了更新的状态时,除非我使用forceUpdate(),否则组件不会更新。我不明白的是,既然状态更新成功,组件不应该自动重新渲染吗? 一些js 正如您所看到的,当我单击一个按钮时,我触发updateLists函数,该函数将