Eu estava brincando com os exemplos para entender o fluxo do código interno do setState do React.
Percebi que o objeto ReactCompositeComponentWrapper fazia referência ao objeto _instance que, por sua vez, fazia referência ao mesmo objeto ReactCompositeComponentWrapper (console da captura de tela) como _ReactInternalInstance . Essa é uma estrutura esperada?
Sim, é intencionalmente uma estrutura duplamente ligada. ReactCompositeComponentWrapper
é apenas interno e envolve componentes compostos definidos pelo usuário. Ele contém uma referência à instância do componente definido pelo usuário que é definido quando ele é montado . Então ReactInstanceMap
é usado para armazenar uma referência ao wrapper interno na instância pública .
Se você olhar para ReactInstanceMap
ele tem mais algumas informações nos comentários do documento
ReactInstanceMap
mantém um mapeamento de uma instância stateful voltada para o público (chave) e a representação interna (valor). Isso permite que métodos públicos aceitem a instância voltada para o usuário como um argumento e os mapeiem de volta para métodos internos.
(Observe que esses são detalhes de implementação privados e serão alterados em versões futuras.)
Obrigado pelo esclarecimento, foi muito útil
Comentários muito úteis
(Observe que esses são detalhes de implementação privados e serão alterados em versões futuras.)