Невозможно обновить во время существующего перехода состояния (например, внутри `render` или конструктора другого компонента)

В приведенном ниже коде метод _updateQID запускается при отправке события "Questions.updateHeader" другим компонентом. когда происходит событие и срабатывает _updateQID, я получаю предупреждение ниже в консоли:

Предупреждение: forceUpdate(...): невозможно обновить во время существующего перехода состояния (например, в render или конструктор другого компонента). Методы рендеринга должны быть чистой функцией реквизита и состояния; побочные эффекты конструктора являются антишаблоном, но их можно перенести в componentWillMount,

import React, { Component } from 'react'
import { subscribe, model } from '~/lib'
import { ContextMenu } from 'project-components'
import _ from 'lodash'
import EventEmitter from 'eventemitter3'

import './Headers.styl'



class Headers extends React.Component {
    constructor (props) {
        super(props)
        this.ee = new EventEmitter()
        this._updateQID = this._updateQID.bind(this)
    }

  componentDidMount () {
    model.on('Questions.updateHeader', this._updateQID.bind(this))
  }

  componentWillUnmount () {
    model.removeListener('Questions.updateHeader', this._updateQID.bind(this))
  }


 _updateQID = () =>{
     this.forceUpdate()
  }


  render () {
    return (<div className="header">DUMMY TEST FOR HEADER</div>)
  }
}

export default Headers

Пожалуйста помоги

1 ответ

Хорошо, мы решили это... Мы инициировали событие для принудительного обновления компонента Headers из метода render другого компонента.... После помещения его в componentDidUpdate вместо render это предупреждение исчезло...

Другие вопросы по тегам