在Vue.js中,使用Vue Router的時候,Vue Router提供了一個addRoutes方法,用來動態添加路由。但是,在使用過程中,我們可能會遇到一個報錯問題,這個問題會導致我們無法正常使用addRoutes方法來添加路由。
Uncaught (in promise) Error: parameter is not a function
這個報錯提示很簡潔明了,就是傳入的參數不是一個函數。為了更好地理解這個問題,我們需要看一下Vue Router的官方文檔。
官方文檔中,addRoutes方法的語法如下:
router.addRoutes(routes: Array<RouteConfig>)
可以看到,addRoutes方法需要傳入一個數組類型的參數,參數中包含了要添加的路由配置信息。而在我們使用addRoutes方法的時候,很可能會出現以下兩種情況:
第一種情況:傳入了一個不是數組類型的參數
// 錯誤寫法
router.addRoutes(routeConfig)
在這種情況下,我們傳入的參數是“routeConfig”,不是一個數組類型的參數,所以會報錯。
第二種情況:傳入了一個數組類型的參數,但是數組中的元素不是路由配置信息
// 錯誤寫法
router.addRoutes([{name: 'home', path: '/home'}])
在這種情況下,我們傳入的參數是一個數組類型的參數,但是數組中的元素是{name: 'home', path: '/home'},這不是一個路由配置信息對象,所以也會報錯。
因此,在使用Vue Router的addRoutes方法的時候,我們需要確保傳入的參數是一個數組類型的參數,并且數組中的每個元素都是一個路由配置信息對象。