0

我的索引书列出了所有已注册的书籍,当我单击编辑特定书籍时,它确实在路线中获得了特定书籍的 id,但我的 props 元素没有得到它,这是什么错误!我该如何解决?

下面我的索引页面上有代码:

<router-link :to="{ name: 'update_book', params: {id: book.id} }"> <font-awesome-icon icon="pen-square" /> </router-link>

在我的更新页面中,我有:

<script>
 props: ['id'],
 data() {
  return {
   books: [],
  };
 },
 methods: {
  getBook(id) {
   axios.get(`http://localhost:3000/api/v1/books/${id}`) // Gets an specif book
    .then((response) => { this.books = response.data; });
 },
 created() {
  this.getBook(this.id);
 },
 watch: {
  $route() {
   this.getBook(this.id);
 },
4

1 回答 1

0

路由器不要传递id给道具。在您的情况下,您可以idthis.$route.params

即使您/book/:id在路由器本身中使用类似的东西,该id参数也将存在于this.$route.params.id.

所以你需要类似的东西:

 created() {
  this.getBook(this.$router.params.id);
 },

顺便说一句,也在观察者中。

在此处输入图像描述

于 2020-01-12T19:28:12.487 回答