猿问

状态更新,但表不会重新呈现/更新

我正在使用django通道更新我的React表。通道工作正常,并发送更新以作出反应。使用收到的更新,我更新了react状态,但是该表没有更新或重新呈现以显示添加的数据。


我已经在控制台上记录了从通道和React状态获得的数据,它可以完美更新,我也尝试过使用React生命周期(如shouldcomponentupdate和componentdidupdate),但是状态可以完美更新,但表却没有


这就是我更新状态的方式:


addMessage(message) {

  console.log("message")

  this.setState({

    data: [...this.state.data, message]

  })

}

setMessages(messages) {

  console.log(messages)

  this.setState({ data: messages })

}

这是表格外观的摘要


render(){

  const {data} = this.state

  console.log(data) //shows updated data at every update

  return(

    <table>

      {data.map(n => {

        return(

          <tr key={n.id}>

             <td> {n.name} </td>

             <td> {n.found} </td>

             <td> {n.date} </td>

          </tr>

      )})}


</table>

)}

这是所要求的完整组件(太长了,这就是我将其最小化的原因)


繁星淼淼
浏览 157回答 2
2回答

长风秋雁

我能够使用redux来解决这个问题并做出生命周期方法的响应,&nbsp;shouldComponentUpdate(nextProps, nextState){if (this.state.data !== nextState.data){&nbsp; this.setState({&nbsp; &nbsp; data: nextState.data&nbsp; })&nbsp; return true}return false}这将比较当前状态和下一个状态。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答