2017-08-27 1 views
1

I definiert haben einen Router-Linkvuejs: Router-link params ist leer

<router-link :to="{ path: linkTo + '/' + item.name, params: { id: item.id } }" >{{item.name}}</router-link> 

Aber wenn ich den Router-Verbindung prüfen, das params Objekt ist immer leer.

enter image description here Was mache ich falsch? Wenn ich nur Ausgang mit der ID {{item.id}} i die Zahl bekommen ...

Das ist mein Weg

{ path: '/category/:name', component: Category, props: true, name: 'category', meta: { auth: true } }, 

gregor

Antwort

1

Das dynamische Segment in der Route angegeben ist " Name ", nicht die" ID ". Das bedeutet, dass Ihr $ route.params-Objekt keine "id" -Eigenschaft besitzt und Sie nicht mit Props in Ihrer untergeordneten Komponente darauf zugreifen können.

Sie müssen entweder den Pfad in Ihrer Route zu path: '/category/:id' ändern oder Ihre Router-Link-Parameter zu params: { name: item.id } ändern. Vergessen Sie nicht, props: ['id'] (oder props: ['name']) in Ihrer untergeordneten Komponente hinzuzufügen.

+0

Ah ok aber gibt es einen Weg, wie ich den richtigen Namen im Pfad behalten kann (zum leichteren Lesen) und die ID unter die Haube schicke? –

+1

Sie können 2 Parameter in route verwenden: Pfad: ''/ category /: name /: id'' (aber der Pfad wird länger und weniger lesbar sein) –

Verwandte Themen