我是阿波罗世界的新人。我为我的Vue apollo客户端使用Vue composition API和@Vue/apollo composable以及V4版。以及后端ist nodejs服务器和apollo服务器。现在我在useQuery的loginpage上遇到了一个问题,如果我调用查询结果,它们将显示错误“TS2349:此表达式不可调用”。
import { ref, defineComponent } from '@vue/composition-api'
import gql from 'graphql-tag'
import { useUserLogin } from '@/mixins/user-login'
import { CustomRules } from '@/validators/rules'
import { useQuery, useMutation } from '@vue/apollo-composable'
export default defineComponent({
props: {
msg: String,
},
setup(props, { root }) {
const form = ref()
const rules = ref(CustomRules)
const username = ref('')
const password = ref('')
const errorMessage = ref('')
const { result: loginBenutzer } = useQuery(gql`
query loginBenutzer($kuerzel: String!, $passwort: String!) {
loginBenutzer(kuerzel: $kuerzel, passwort: $passwort) {
user {
kuerzel: BEN_MIA_KUERZEL,
name: BEN_NAME
},
token
}
}
`)
function login() {
if (form.value.validate()) {
loginBenutzer({ kuerzel: username.value, passwort: password.value })
.then(data => {
useUserLogin(data.data.loginBenutzer)
root.$router.push('/hm')
})
.catch(err => {
errorMessage.value = err.message
console.log(err)
})
}
}
return {
form,
rules,
username,
password,
login,
errorMessage,
}
},
})
调用结果:此行的loginBenutzer
loginBenutzer({ kuerzel: username.value, passwort: password.value })
loginBenutzer显示错误“TS2349:此表达式不可调用。类型“Ref”没有调用签名”。
在阿波罗服务器中,类型是这样定义的
type Query {
loginBenutzer(kuerzel: String!, passwort: String!): LoginResponse!,
}
但是如果我将查询更改为突变,那么它们是有效的。像这样
const { mutate: loginBenutzer } = useMutation(gql`
mutation loginBenutzer($kuerzel: String!, $passwort: String!) {
loginBenutzer(kuerzel: $kuerzel, passwort: $passwort) {
user {
kuerzel: BEN_MIA_KUERZEL,
name: BEN_NAME
},
token
}
}
`)
function login() {
if (form.value.validate()) {
loginBenutzer({ kuerzel: username.value, passwort: password.value })
.then(data => {
useUserLogin(data.data.loginBenutzer)
root.$router.push('/hm')
})
.catch(err => {
errorMessage.value = err.message
console.log(err)
})
}
}
而像这样的类型
type Mutation {
loginBenutzer(kuerzel: String!, passwort: String!): LoginResponse!,
}
但我非常确信,使用查询来调用用户信息是正确的方法。谁能帮帮我吗。非常感谢你!!!
我将Angular 2与TypeScript 2一起使用。 当我使用 它给我错误: 错误TS2349:无法调用其类型缺少调用签名的表达式。
我得到“无法调用其类型缺少调用签名的表达式。类型'typeof import("weealert2")'没有兼容的调用签名。”在角度使用SWAL时出现此错误。 在一个组件中,我的代码如下所示 在组件中,我得到了上面提到的错误。搜索了很多,但无法找出问题。请帮助我。
在过去的8个月里,我们使用vue 3和类组件构建了一个项目,但似乎不再维护它,我们希望逐渐切换到组合API,更准确地说是切换到设置脚本语法。 我们目前正在使用vue3。0.0和vue类组件8.0.0。 我们的目标是,因为我们必须不断向项目添加新功能,开始使用composition API创建新组件,同时保留那些已经使用vue class component编写的组件。而且,在我们继续的过程中,我们
我正在使用Spring Boot 2.2.4并尝试自定义执行器 以下是相关的课程
我想在xml JDBCTemolate上进行配置。 看起来是这样的 JDBCrepository: 控制器: