diff --git a/docs/docs/guide/computed.png b/docs/docs/guide/computed.png new file mode 100644 index 0000000..7616a3f Binary files /dev/null and b/docs/docs/guide/computed.png differ diff --git a/docs/docs/guide/reactive.md b/docs/docs/guide/reactive.md index 9b8e8bc..b56f6e7 100644 --- a/docs/docs/guide/reactive.md +++ b/docs/docs/guide/reactive.md @@ -37,7 +37,7 @@ yarn add helux-store 典型的`Store`结构如下: -![](/store.png) +![](./store.png) - `Store`对象中会定义`State`数据结构,一般情况下不允许直接修改`State`数据,而是通过`Action`来修改`State`数据。 - `Action`是一个普通的函数,一般会实现某种业务逻辑,可以是同步函数,也可以是异步函数。执行成功会修改`State`数据。 @@ -363,7 +363,7 @@ export default ()=>{ **`helux-store`实现了最独特的移花接木式的计算属性实现方式** ::: -![](/computed.png) +![](./computed.png) **基本过程如下:** @@ -786,28 +786,33 @@ store.state.user.fullName={ ```tsx import { createStore,computed } from 'helux-store'; -const delay = (ms:number=2000)=>new Promise(resolve=>setTimeout(resolve,ms)) +import { useRef,useEffect } from "react" +const delay = (ms:number=1000)=>new Promise(resolve=>setTimeout(resolve,ms)) const state = { user:{ firstName:"Zhang", lastName:"Fisher", - fullNameX: computed(async (user)=>{ + fullName: computed(async (user)=>{ await delay() - return "user.firstName+user.lastName" - },["user.firstName"]) + return user.firstName+user.lastName + },["user.firstName","user.lastName"]) } } const store = createStore({state}) export default ()=>{ + const count = useRef(0) const [state,setState] = store.useState() + useEffect(()=>{count.current++},[]) return (
FirstName:{state.user.firstName}
-
LastName:{state.user.lastName}
-
FullName:{state.user.fullNameX.loading ? '正在计算' : state.user.fullNameX.value}
+
LastName:{state.user.lastName}
+
FullName:{state.user.fullName.loading ? '正在计算...' : state.user.fullName.value}
{/*
error:{state.user.fullName.error}
*/} - - + + + + {/* */}
) } ``` diff --git a/docs/public/store.png b/docs/docs/guide/store.png similarity index 100% rename from docs/public/store.png rename to docs/docs/guide/store.png diff --git a/packages/store/src/computed.ts b/packages/store/src/computed.ts index 207a034..dfb6838 100644 --- a/packages/store/src/computed.ts +++ b/packages/store/src/computed.ts @@ -191,7 +191,7 @@ function createComputedMutate>(stateCtx: ISharedC const newGetter = onCreateComputed.call(stateCtx,fullKeyPath,getter,computedOptions) if(typeof(newGetter)=='function') getter = newGetter } - const { context,scope,onError,initial,params:computedParams,depends } = computedOptions + const { context,scope,onError,initial,params:computedParams } = computedOptions const witness = stateCtx.mutate({