也许我误解了Vuex中的getter,但是说我有一个getter可以获取DOM元素(例如div)的大小。我会做这样的事情:
const getters = {
getContainerWidth (state) {
return document.getElementById('main-content').clientWidth;
}
}
现在,当我启动我的应用程序时,所有的吸气剂似乎都立即运行了。如果div在启动时不可用怎么办?如何重新运行吸气剂?
我现在像这样运行吸气剂:
import store from '@/store'
store.getters['myModule/getContainerWidth']
我认为这可能会起作用:
store.getters['myModule/getContainerWidth']()
但是由于store.getters是一个包含属性和值的对象,并且这些值不是函数,所以我无法重新运行它们。
有什么想法吗?
答案 0 :(得分:1)
来信者应根据state
字段来作出反应。您想观察clientWidth
的变化-它不起作用。
如果要像函数一样使用它,只需从getter返回函数:
const getters = {
getContainerWidth (state) {
return () => {
let container = document.getElementById('main-content');
return container ? container.clientWidth : 0
};
}
}
并像getContainerWidth()