Vah*_*iri 2 vue.js graphql apollo-client vuejs3 vue-composition-api
我在寻找一种使用Apollo v4和Vue 3组合 API将结果从方法内部返回到模板的干净方法时遇到一些问题。
这是我的组件:
export default {
components: {
AssetCreationForm,
MainLayout,
HeaderLinks,
LoadingButton,
DialogModal
},
setup() {
const showNewAssetModal = ref(false);
const onSubmitAsset = (asset) => {
// how do I access result outside the handler function
const { result } = useQuery(gql`
query getAssets {
assets {
id
name
symbol
slug
logo
}
}
`)
};
}
return {
showNewAssetModal,
onSubmitAsset,
}
},
}
Run Code Online (Sandbox Code Playgroud)
onSubmitAsset当用户单击页面上的按钮时调用该函数。
如何result从设置函数返回 useQuery 以便能够在模板中访问它?(我不想复制该值)
您可以移动useQuery()提交方法的外部,如文档中所示。如果您想推迟查询获取直到调用提交方法,您可以通过enabled:false作为选项传递( 的第三个参数useQuery)来禁用自动启动:
export default {
setup() {
const fetchEnabled = ref(false)
const { result } = useQuery(gql`...`, null, { enabled: fetchEnabled })
const onSubmitAsset = (asset) => {
fetchEnabled.value = true
}
return { result, onSubmitAsset }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2298 次 |
| 最近记录: |