Vue.js(typescript)で$routerが使えない!ってなった時の話
前提
router周りの導入、typescriptで書いているなどを想定して書いています。その辺りは省略して書きます。
事象
vue.jsでtypescriptを使って$routerでページ遷移させる処理を書いているときにはまった部分です。
下記のように書いて実行したいのにthisでなんか怒られる。routerの読み込みとかは問題なさそうなのに。。。引数はあってもなくてもどちらでも大丈夫です。
function clickMove(event: any): void {
this.$router.push({name: "About"})
}
結論
無名関数で書きましょう
単純でした。typescriptでthisを書く際は無名関数を使うというところです。
function clickMove(event: any): void {}
上記を下記に変更
const clickMove = (event: any) => {}
結構はまってしまっていました。もっと早く疑うべきでした。詳しいことは参考をみてください
以上!