2
respostas

Warning: Can't perform a React state update on an unmounted component

Bom dia, estou recebendo o warningao me inscrever com subscribe.

Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.

Qual a razão dele e como resolve-lo?

Código:

export default class Usuarios extends Component {

    constructor(props) {
        super(props);
        this.state = {usuarios : []}
    }

    componentWillMount() {
        this.props.store.subscribe(() => {
            this.setState({usuarios: this.props.store.getState()});
        })
    }
    componentDidMount() {
        UsuarioApi.listar(this.props.store)
    }
...
}
2 respostas

Boa tarde, Julio! Como vai?

O problema é que vc está alterando o estado de um componente que será desmontado. Afinal de contas, veja que vc está executando esse processo dentro do componentWillUnmount(). O que aliás, me deixou intrigado! Qual o motivo para vc ter utilizado o componentWillUnmount() para fazer essa atualização de estado?

De acordo com a resposta dessa pergunta eu posso te ajudar na busca por uma solução!

Na verdade estou executando dentro de um componentWillMount, eu transcrevi errado (Alterei) . No entanto o erro ocorre dentro do componentWillMount também, e, a não ser que eu esteja equivocado com o conteúdo da aula, é exatamente neste modelo que o Alberto demonstra o subscribe.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software