Cześć,
Chciałem sobie uwspółcześnić kod, bo miałem wrapper komponentu (taki ala HOC), który zwracał callback z obiektem z referencjami do zmieniania stanów wewnątrz tego wrappera. I to działało, dokładnie tak jak chciałem, czyli miałem np. buttonComponent.setText('nowy tekst'). Po wywołaniu metody przychodzącej z callbacka, odświeżany był z nowym napisem tylko przycisk, a rodzic trzymający go już nie.
Postanowiłem zamienić wrapper w customowego hooka. Jednak nie przewidziałem, że stany z customowego hooka są trzymane w rodzicu? Tak przynajmniej najwyraźniej sądzę, bo przy przerenderowaniu teraz przycisku, przerenderowywany jest również rodzic :(.
const buttonToChangePattern = useAntPattern(buttonToChangeOptions.current)
Czy ktoś ma pomysł, jak mógłbym to zabezpieczyć, żeby przeładowywał się tylko np. przycisk, a div trzymający różne przyciski nie? Bo nie chciałbym robić specjalnie teraz otoczki w postaci kolejnego komponentu, bo wtedy ten hook mija mi się z celem.
Czy da się sprawić, żeby customowy hook działał, jak komponent, tzn. miał swoje oddzielne pamięci i przy zmianie zmieniał się tylko on? Bo wydawało mi się, że tak powinno to działać w Reacie. Na różnych filmikach widziałem, że można bez problemu z HOC przejść na hook.
Link do kodu na Git Hubie:
https://github.com/Amaranthusss/ant-design-patterns
Przykładowo w komponencie ButtonExample.ts można postawić breakpoint na return i wtedy widać, że przy przerenderowaniu przycisku (który jest zwracany z hooka), przeładowuje się cały ButtonExample.ts
A może jeszcze w czymś innym robię błąd i stąd te przeładowanie rodzica?
Z góry dzięki.