当前位置: 首页 > Web前端 > vue.js

vue3apollo4useQuery由点击事件触发

时间:2023-04-01 12:33:16 vue.js

常规使用查询单个请求///...setup...///letformDynamicAttars=(data)=>{letlist=deepClone(takeoffEdges(data,'dynamicAttrs'));list.forEach(item=>{item.isedit=false;//默认为非编辑状态})//tableData.value=list.sort(sortWeight('attrIndex'));}letgetDynamicAttrs=()=>{const{result,loading,error}=useQuery(dynamicAttrs)//整理显示watch(result,value=>{formDynamicAttars(value)})}//获取getDynamicAttrs();如果页面通过按钮事件发起查询请求,页面会报错如下:如果中间页面渲染是发起请求,可能找不到useQuery需要的client,所以会报错(理解有误请指正~)Apollo官方有个issue说的更清楚【传送门】issues/909]]](https://github.com/vuejs/apol...)我个人觉得在setup的整个范围内定义一个无意义的refetch并不好。我进行了以下修改queryDynamicAttrs}=useQuery(dynamicAttrs);//让getDynamicAttrs=()=>{queryDynamicAttrs().then(res=>{formDynamicAttrs(res.data)})}可以这样做根据需要定义多个useQuery...const{refetch:queryDynamicAttrs1}=useQuery(dynamicAttrs1);const{refetch:queryDynamicAttrs2}=useQuery(dynamicAttrs2);...