vue2之 missing param for named route "xxxx"


場景:

解決方法:可以做的是將其包含router-link在適當的位置v-if,以便在您的異步數據實際到達之前不會嘗試渲染。

html代碼:

<div id="app" class="container">
  <p>
    <router-link to="/foo">Go to Foo</router-link>
    <router-link to="/bar">Go to Bar</router-link>
  </p>
  <router-view></router-view>
</div>

<script  type="text/x-template" id="joke">
    <div class="container">
         bar  <br>
       <template v-if="joke"> 
           {{joke.joke}}
           <router-link :to="{name: 'joke', params: {number: joke.id}}">{{joke.id}}</router-link>
    </template>
  </div>
</script>

js

const Foo = { template: '<div>foo</div>' }
const Bar = { 
  template: '#joke',
  data () {
    return {
      joke: null
    }
  },
  methods: {
    get: function () {
      this.$http.get('https://api.icndb.com/jokes/random').then((response) => {
        this.joke = response.body.value
        console.log(this.joke)
      }, (response) => {
        console.log(response)
      });
    }
  },
  mounted () {
    this.get()
  }
}
const funny = {
  template: '<div> {{id}}</div>',
  computed: {
    id () {
      return this.$route.params.number
    }
  }
}

const routes = [
  { 
    path: '/foo', 
    component: Foo,
    name: 'foo'
  },
  { 
    path: '/bar', 
    component: Bar,
    name: 'bar'
  },
  {
    path: '/joke/:number',
    name: 'joke',
    component: funny
  }
]

const router = new VueRouter({
  routes 
})

const app = new Vue({
  router
}).$mount('#app')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM