Zarządzanie stanem · Senior · Pytanie 57 z 75
Jak dać każdej instancji złożonego widżetu własny store Zustand?
const StoreContext = createContext(null);
function Editor({ initial }) {
const [store] = useState(() => createStore(() => ({ ...initial })));
return <StoreContext value={store}>...</StoreContext>;
}- ✓Poprawna odpowiedź: Tworzyć „vanilla” store na instancję (
createStore), przekazywać go przez Context i czytać przezuseStore(store, selector) - 2Store'y Zustand są zawsze globalnymi singletonami
- 3Wywoływać
create()w ciele komponentu przy każdym renderze
Wyjaśnienie
Pozwala to też inicjalizować store z propsów. Tworzenie store'a w inicjalizatorze useState utrzymuje go stabilnym między renderami.