Невозможно обновить во время существующего перехода состояния (например, внутри `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 это предупреждение исчезло...