vuex 使用mapState之后如何获取节点
来源:8-2 vuex在项目中的应用(1)

Eden_frontend
2017-04-01
computed:{
...mapState({
cates:(state)=>state.DetailList.cates,
keyWords:(state)=>state.DetailList.keyWords,
itemList:(state)=>state.DetailList.promotedList,
slidingWords:(state)=>state.DetailList.slidingWords,
mainItem:(state)=>state.DetailList.mainItem,//这里获取数据
dImageList:(state)=>state.DetailList.dImageList
})
},
created(){
let self=this;
self.$nextTick(()=>{
let bannerBox = document.getElementById('slider-cont');//这里无法获取到ID
bannerBox.addEventListener("touchstart",(e)=>{
self.startX = e.touches[0].clientX;
self.startY = e.touches[0].clientY;
});
bannerBox.addEventListener("touchmove", self.touchPanMove);
bannerBox.addEventListener("touchend", self.touchPanEnd);
});
//绑定touch
},
因为在最外层有加
<div v-if="mainItem"></div>
4回答
-
fishenal
2017-04-02
感觉你的问题跟maspState无关,跟v-if的状态有关,created的时候 v-if mainItem这个元素是不是被删掉了。
还有建议尽量不在js里获取dom,框架已经提供了很多方法,如果是移动端事件可以去搜索相关的事件库来扩展。
你这相当于还是用jquery的思维来用vue,没用到vue的便捷。
00 -
Eden_frontend
提问者
2017-04-05
如果把v-if改成v-show 那
下面{{mainItem.price}}就会报错的。因为数据都没取回来就显示了
012017-04-05 -
Eden_frontend
提问者
2017-04-02
使用ref获取后无法添加事件
00 -
Eden_frontend
提问者
2017-04-02
那能在教程里讲讲吗?
012017-04-02
相似问题