Olá amigos!
Então, os desenvolvedores do React decidiram tornar nosso trabalho mais linear, direcionando, por assim dizer, nós negligenciando o caminho da menor chance de cometer um erro e escrevendo um código ruim, que, na minha opinião, é nosso direito inalienável e uma maneira de melhorar e inventar. Estamos falando de todos os métodos favoritos de componentWillReceiveProps e outros da mesma série, eles não serão mais, mas teremos uma alternativa na forma do método estático getDerivedStateFromProps. Pessoalmente, isso me lembra uma sala escura onde as coisas estão, e elas precisam ser encontradas, mas nada é visível.
Os desenvolvedores em suas respostas aos comentários irritados dos usuários do React escrevem o seguinte: Bem, nós não fornecemos prevProps, não é possível pensar em algo, prevProps não, bem, você fica lá, apenas armazena-os em um estado, em geral eles sugerem que façamos uma pequena muleta em nosso novo bom código. É tudo simples, é claro, você pode entender e perdoar, mas fiquei chateado pelo fato de agora não ter esse contexto, meu quarto estar emparedado, nada era visível a partir dele, até meus vizinhos não foram ouvidos, então decidi escrever uma coisa para mim, esconderá todas as muletas em si e meu código parecerá estranho, mas sem ossos (e sem ossos?).
Em geral, eu preciso implementar prevProps no estado do componente, também quero que tudo pareça como de costume e também é impossível viver sem essa mágica em getDerivedStateFromProps estático (isso é tolice!). Dois dias de tormento e auto-aperfeiçoamento e tudo está pronto, eu dei à luz um rato.
Instalação
npm install
Use
Basta escrever o mesmo getDerivedStateFromProps e componentDidUpdate, mas já modificado.
Envolvemos nosso componente em "withStateMaster", passamos uma lista de "adereços" cujas alterações você precisa acompanhar
import {Component} from 'react' import {withStateMaster, registerContext, unregisterContext} from 'state-master';
Se o componente herdar de outro, passe o pai para que o pai getDerivedStateFromProps seja chamado
export const Container = withStateMaster(ContainerComponent, PROP_LIST, null, ParentalComponent);
Esta é a minha solução para esse problema (embora talvez eu não tenha entendido a reação o suficiente e isso não seja um problema).
Por isso, resisti aos novos cânones do React, talvez um dia eu me humilhe e reescreva tudo como deveria.
Embora os desenvolvedores provavelmente refazem tudo novamente e outros problemas urgentes surgirão.
É isso aí, deito-me, mas eles não estão atingindo as pessoas acamadas.