useRouter()放在箭头函数里面的问题
来源:6-6 vue-router 添加路由
满舰饰v
2022-07-07
这个useRouter()
函数,放在箭头函数外面可以获取到函数的返回对象
但是如果放在箭头函数里面,useRouter()
函数就只能返回undefined,还会给你一个警告
这是为什么???
import { useRouter } from 'vue-router';
export default {
setup(props) {
const myRouter = useRouter();
console.log('函数外面的 useRouter', useRouter());
const handleLinkTo = function () {
console.log('函数里面的 useRouter', useRouter()); // undefined
myRouter.push({ name: 'login' });
};
return { handleLinkTo };
},
};
写回答
1回答
-
同学你好
从错误提示就可以看到 useRouter 这个钩子函数只能在 setup(第一层) 中使用, 由于它要使用 inject/provide 方法的,你将它包裹到另外一个 function 中也是不行的,执行的作用域不行。这是个硬性规定,记住就可以了。
012022-07-08
相似问题