Я играл с примерами, чтобы понять внутренний поток кода React setState.
Я заметил, что объект ReactCompositeComponentWrapper имел ссылку на объект _instance, который, в свою очередь, имел ссылку на тот же объект ReactCompositeComponentWrapper (консоль скриншота) как
Да, это намеренно двусвязная структура. ReactCompositeComponentWrapper
является только внутренним и обертывает определяемые пользователем составные компоненты. Он содержит ссылку на экземпляр определяемого пользователем компонента, который определяется при его монтировании . Затем ReactInstanceMap
используется для хранения ссылки на внутреннюю оболочку в общедоступном экземпляре .
Если вы посмотрите на ReactInstanceMap
в комментариях к документу есть дополнительная информация.
ReactInstanceMap
поддерживает отображение общедоступного экземпляра с отслеживанием состояния (ключ) и внутреннего представления (значение). Это позволяет общедоступным методам принимать экземпляр, обращенный к пользователю, в качестве аргумента и сопоставлять их с внутренними методами.
(Обратите внимание, что это частные сведения о реализации, которые будут изменены в будущих версиях.)
Спасибо за разъяснение, это было действительно полезно
Самый полезный комментарий
(Обратите внимание, что это частные сведения о реализации, которые будут изменены в будущих версиях.)