vue3 使用watch给a-table或el-table赋值报错Maximum recursive updates exceeded

302 阅读1分钟
<a-table
		:getPopupContainer="(triggerNode) => triggerNode.parentNode"
		:columns="columns"
		:data-source="taskList"
		bordered
		size="small"
		:row-key="(record) => record.id"
		:pagination="false"
	>
            
            	watch(
	() => props.flwParamList,
	(newVal, oldVal) => {
		if (newVal) {
			nextTick(() => {
				taskList.value = newVal
			})
		}
	},
	{ deep: true, immediate: true }
)
    
    如代码所示,taskList是根据watch动态赋值,这样做会报错Maximum recursive updates exceeded,递归超过最大量
    
    解决方法就是	taskList.value = [...newVal],把newVal拷贝一下即可