我注意到,useLocalObservable将函数自动放入mobx actions中,就像makeAutoObservable对类所做的那样。
它是否也使getter成为mobx computed值?
import { useLocalObservable } from 'mobx-react-lite';
const state = useLocalObservable(() => ({
isShowDragMeTooltip: false,
showDragMeTooltip() {
this.isShowDragMeTooltip = true;
},
hideDragMeTooltip() {
this.isShowDragMeTooltip = false;
},
get dragMeTooltipStyles() {
return {
display: this.isShowDragMeTooltip ? 'block' : 'none',
};
}
}));在上面的代码中,dragMeTooltipStyles是用自己的回忆录计算出来的值,还是在每次调用时都被重新计算的一个普通的getter?
发布于 2022-09-27 10:08:55
是的,它使getter成为一个computed值,它将被回忆录等等。
但是不要忘记,它只会在可观察的上下文中被回传,例如,如果您在观察者组件的React呈现函数中调用它。
如果您从useEffect或类似的东西调用它,这不是在可观察的上下文中,它将对每个调用进行重新计算。
我做了一个简单的例子来演示它在不同的环境中是如何工作的:
https://stackoverflow.com/questions/73841297
复制相似问题