Javascript 如果可以';我不能在我的工作中做这件事

Javascript 如果可以';我不能在我的工作中做这件事,javascript,reactjs,firebase,Javascript,Reactjs,Firebase,我是一个完全的react初学者,最近我发现在我的渲染函数中设置状态是一个很大的禁忌,因为它会导致无休止的递归。但是,我想为我的firebase服务器设置一个侦听器,每当我的firebase文档发生更改时,该侦听器都会更新状态。是否有一个异步运行的react函数来呈现我可以在哪里进行这些状态更改?我尝试了componentDidUpdate(),但它似乎只在初始渲染时运行一次。假设您已经知道需要使用此.setState方法才能更改页面上的值 在构造函数中,我们需要定义this.state对象,然后

我是一个完全的react初学者,最近我发现在我的渲染函数中设置状态是一个很大的禁忌,因为它会导致无休止的递归。但是,我想为我的firebase服务器设置一个侦听器,每当我的firebase文档发生更改时,该侦听器都会更新状态。是否有一个异步运行的react函数来呈现我可以在哪里进行这些状态更改?我尝试了componentDidUpdate(),但它似乎只在初始渲染时运行一次。

假设您已经知道需要使用此.setState方法才能更改页面上的值

在构造函数中,我们需要定义this.state对象,然后每当发生某个事件时,在绑定这些事件以进行更改时,只应使用this.setState方法更新该值

constructor(props) {
    super(props);
    this.state = {date: new Date()};
  }


 this.setState({comment: 'Hello'});

您的侦听器可能应该进入
componentDidMount()
,但如果您不共享代码,任何人都无法提供更多帮助。您可以使用useState和functional react。您正在使用此库吗?在这种情况下,您需要定期调用您的抓取方法。您应该从componentDidMount调用此方法,然后定期调用它。获取或使用Axios。这里有一个很好的博客。