Javascript 如何刷新React中的单个组件
我有一个物品容器。我在地图功能中通过一篇文章扔道具。像Javascript 如何刷新React中的单个组件,javascript,reactjs,redux,Javascript,Reactjs,Redux,我有一个物品容器。我在地图功能中通过一篇文章扔道具。像 articles.map(d => <Article article={d} /> ) 您需要更新组件状态以强制刷新它。我看不到您的代码,但我猜您有这样的代码: class Article extends React.Component { constructor(props) { super(props); this.state = {...}; } render() {
articles.map(d =>
<Article article={d} />
)
您需要更新组件状态以强制刷新它。我看不到您的代码,但我猜您有这样的代码:
class Article extends React.Component {
constructor(props) {
super(props);
this.state = {...};
}
render() {
return ...
}
}
更改时必须刷新视图的值应位于状态对象内部。因此,在进行更改时,请使用setState:
setState({upvoted: true});
视图将刷新,而无需重新加载所有文章。这适用于Upvote和Downvote,以及任何其他更改。但不是为了移除
删除时,您应该更新列表,但这并不意味着再次从API获取文章。您可以保留您拥有的相同文章,只需从列表中删除该项目,并更新列表组件状态,以刷新该视图。通过使用状态更改,我只能更新DOM(例如禁用按钮),但它不会更改该文章的实时值,我的意思是,当我向上投票时,它会增加1,所以对于show-upvote更新,我们必须再次调用api。我认为GraphQL可以解决这个问题。
setState({upvoted: true});