ルートコンポーネントにプロパティを数値で渡す
Vue3 を使ってわからなかった事のメモシリーズ
ルートコンポーネントにプロパティを渡すことをリンクを参考にしてやってみた。しかし、値を渡すことはできたが age プロパティの値が文字列だった。
const router = new VueRouter({ routes: [{ path: '/User/:name/:age', name: 'User', component: User, props: true }] })
// User コンポーネント props: { name: String, age: Number, },
age プロパティの値を Number で渡すには router の props をFunction モードで定義する
const router = new VueRouter({ routes: [{ path: '/User/:name/:age', name: 'User', component: User, props: route => ({ name: route.params.name, age: parseInt(route.params.age, 10), }) }] })
Vue のサンプルをまねて記述したのだが、自分の環境では以下のエラーがでてコンパイルできなかった。
パラメーター 'route' の型は暗黙的に 'any' になります。ts(7006)
引数の型を明記してやればよいみたい
const router = new VueRouter({ routes: [{ path: '/User/:name/:age', name: 'User', component: User, props: (route: { params: { name: string, age: string } }) => ({ name: route.params.name, age: parseInt(route.params.age, 10), }) }] })