1、使用方法
yarn add @feige0629/react-common-store
npm install @feige0629/react-common-store
调用
import * as React from "react";
import { StoreRoot } from "@feige0629/react-common-store";
export default function App() {
return (
<StoreRoot>
...
</StoreRoot>
);
}
定义数据
import { initState, compute } from "@feige0629/react-common-store";
export const $showGuides = initState<boolean>(true);
export const $selectedFlattenLayers = compute(({ get }) => {
const layerManager = get($layerManager)!;
const selectedLayers = get($selectedLayers)!;
return layerManager.toFlatten(selectedLayers);
});
使用
import { useStoreRoot, useStoreStateSetPromise, useStoreStateValue, useStoreValue, useStoreState } from "@feige0629/react-common-store";
import { $showGuides, $selectedFlattenLayers } from "./stores";
const root = useStoreRoot();
const layers = root.get($layers);
root.set($layers, '新数据');
useStoreValue($showGuides, '新数据');
const showGuidesStore = useStoreValue($showGuides);
const value = showGuidesStore.value;
showGuidesStore.update(value);
const showGuidesStore = useStoreStateValue($showGuides);
const showGuidesStore = useStoreStateSetPromise($showGuides);
showGuidesStore('新数据').then(complete => {
if (!complete) {
return false;
}
....
return complete;
});
const [guidelines, setGuidelines] = useStoreState($showGuides);
guidelines
setGuidelines('新数据')
const setShowGuidesValue = useStoreStateSetValue($showGuides);
setShowGuidesValue('新数据')