这个是之前的代码 里面事件是岁watch被调用的,但是在页面初次渲染的时候事件报错
watch(() => store.getters.crtPaperData,
() => {
if (store.getters.crtPaperData != null) {
state.questionData = store.getters.crtPaperData.questionVos
state.quesNumItem = state.questionData[0]
state.quesNumMax = Number(state.questionData[state.questionData.length - 1].qusNum)
// state.quesIds[0] = state.quesNumItem.quesId
getQuesId()
getStuListAnswer()
}
}, {
deep: true,
immediate:true
}
)
这个代码是我修改之后的,通过加个nextTick这个异步处理等待dom渲染完成后再次调用此方法,便解决了此方法因为之前vue3在生命周期内,出于creraed阶段此时还没有事件,所以会报错
watch(() => store.getters.crtPaperData,
() => {
if (store.getters.crtPaperData != null) {
state.questionData = store.getters.crtPaperData.questionVos
state.quesNumItem = state.questionData[0]
state.quesNumMax = Number(state.questionData[state.questionData.length - 1].qusNum)
// state.quesIds[0] = state.quesNumItem.quesId
nextTick(() => {
getQuesId()
getStuListAnswer()
})
}
}, {
deep: true,
immediate: true
}
)
文章写的不好不喜勿喷,欢迎加入qq群313367987