comuted
1.computed依赖属性更新后,computed没重新触发。 具体代码如下:
/**
* 数据联动
*/
const handleChange = useCallback((value: any) => {
...变更this.fieldMap
}, [config, readWriteKey])
//计算属性
const checkData = computed(() => {
const currentData = store?.getColumnStatus(readWriteKey);
return {
value: currentData
};
}).get()
//依赖项
@action
getColumnStatus = (editKey: string) => {
let status = false;
this.fieldMap.forEach((item: any) => {
status = item?.[editKey];
});
return status;
};
解决方案: 去除依赖项的@action 问题分析:在handleChange里更新fieldMap后,设置了action的getColumnStatus因为依赖关系就通知了数据变化了,到computed又依赖getColumnStatus,这时候依赖项已经走过了,所以不会通知computed(仅个人理解猜测,欢迎指正)。
observable使用方法:后面把所有方法打印测试下 注意
observable方法转mobx是递归操作,层级很深时会影响性能问题,所以转mobx对象时可以选择一层还是深层