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