为什么 setup() 不起作用 "Cannot read property 'username' of undefined "
why setup() doesnt work "Cannot read property 'username' of undefined "
当我在它有效的方法中使用 toLogin 时,但在设置和 return(在此代码中 - test)中使用时,我得到错误 Cannot读取未定义的 属性 'username' 不起作用 ,为什么?
export default {
name: "Login",
setup() {
const username = ref("");
const password = ref("");
const router = useRouter();
const test = async () => {
console.log(this.username.value)
}
return {
username,
password,
router,
test
};
},
methods: {
async toLogin() {
const rep = await axios.post("login", {
username: this.username,
password: this.password,
});
console.log(rep)
//await this.router.push("/successlogin");
},
},
};
您不需要 this
。相反,只需使用 console.log(username.value)
。 username
已在 test
函数使用的范围内捕获。
这里的文档 https://v3.vuejs.org/guide/composition-api-introduction.html#setup-component-option 包含这个例子:
setup (props) {
const repositories = ref([])
const getUserRepositories = async () => {
repositories.value = await fetchUserRepositories(props.user)
}
return {
repositories,
getUserRepositories
}
}
当我在它有效的方法中使用 toLogin 时,但在设置和 return(在此代码中 - test)中使用时,我得到错误 Cannot读取未定义的 属性 'username' 不起作用 ,为什么?
export default {
name: "Login",
setup() {
const username = ref("");
const password = ref("");
const router = useRouter();
const test = async () => {
console.log(this.username.value)
}
return {
username,
password,
router,
test
};
},
methods: {
async toLogin() {
const rep = await axios.post("login", {
username: this.username,
password: this.password,
});
console.log(rep)
//await this.router.push("/successlogin");
},
},
};
您不需要 this
。相反,只需使用 console.log(username.value)
。 username
已在 test
函数使用的范围内捕获。
这里的文档 https://v3.vuejs.org/guide/composition-api-introduction.html#setup-component-option 包含这个例子:
setup (props) {
const repositories = ref([])
const getUserRepositories = async () => {
repositories.value = await fetchUserRepositories(props.user)
}
return {
repositories,
getUserRepositories
}
}