Arrayをpropsで受け取ると二重配列になっている【vue-router】
Q&A
Closed
解決したいこと
propsで受け取った配列が二重配列になっている原因を知りたい。
- vue-routerを利用してコンポーネントを生成。
- propsでArrayを渡す
発生している問題・エラー
Arrrayが二重になってしまっている。
該当するソースコード
要所以外は省略しています。
Home.vue
<template>
<router-link :to="{ name: 'detail', params: { arr: ['a', 'b'] } }">
</template>
router.js
//省略
{
name: 'detail',
path: '/detail',
component: Detail,
props: route => ({
p_arr: Array(route.params.arr)
})
}
//省略
Detai.vue
<script>
export default {
props: {
p_arr: Array// [["a", "b"]]
}
}
</script>
自分で試したこと
routerのparamを変更してみる
- p_arr: Arrayrouter.param.arr
+ p_arr: Arrayrouter.param.arr[0]
0が定義されていないためNG
受け取った二重配列を配列に直す(応急処置)
Detai.vue
<script>
export default {
props: {
p_arr: Array// [["a", "b"]]
},
data() {
return {
arr: []
}
},
created() {
this.arr = this.p_arr[0]//応急処置
}
}
</script>
応急処置により、動くは動くきます。
しかし原因が掴めず、モヤモヤしています。
根本的な理解ができていなだけな気がします。
おかしなところがあればご指摘願います🙏v
1