onAction
onAction可以监听对store中值的修改,但是经过测试发现
如果执行someStore.$reset
const resetUserStore = () => {userStore.$reset();
};
或者 $patch
const dispatchUserStore = () => {userStore.$patch((state) => {state.name = "patch修改";});
};
是都无法导致$onAntion
监听得到的
userStore.$onAction(({name, // action 名称store, // store 实例,类似 `someStore`args, // 传递给 action 的参数数组after, // 在 action 返回或解决后的钩子onError, // action 抛出或拒绝的钩子}) => {// 为这个特定的 action 调用提供一个共享变量const startTime = Date.now();// 这将在执行 "store "的 action 之前触发。console.log(`Start "${name}" with params [${args.join(", ")}].`);// 这将在 action 成功并完全运行后触发。// 它等待着任何返回的 promiseafter((result) => {console.log(`Finished "${name}" after ${Date.now() - startTime}ms.\nResult: ${result}.`);});// 如果 action 抛出或返回一个拒绝的 promise,这将触发onError((error) => {console.warn(`Failed "${name}" after ${Date.now() - startTime}ms.\nError: ${error}.`);});}
);