F-loat / mpvue-quickstart

🐱‍👤 更优雅的 mpvue 起手式
http://mpvue.com/mpvue/quickstart
172 stars 34 forks source link

结合mpvue-router-patch时报错 #29

Closed yjj5855 closed 5 years ago

yjj5855 commented 5 years ago

npm run dev 时这个错 是mpvue-entry这个包报出来的

image

F-loat commented 5 years ago

main.js 的内容发一下

yjj5855 commented 5 years ago
import Vue from 'vue'
import MpvueRouterPatch from 'mpvue-router-patch'
import App from '@/App'
import store from '@/store'
import './utils/axiosConfig'
import BanbuWXPlugin from './utils/BanbuWXPlugin'
import env from './env/env'
import { formatParam } from './utils'
require('promise.prototype.finally').shim()

Vue.use(MpvueRouterPatch)
Vue.use(BanbuWXPlugin)
Vue.config.productionTip = false

const app = new Vue({
  mpType: 'app',
  store,
  ...App
})

// 调用登录接口
wx.login({
  success: (data) => {
    console.log(data)
    let route = null
    getOpenIdByCode(data.code)
      .then(checkOpenIdBindStatus)
      .then(openIdLogin)
      .catch(err => {
        if (err && err.name === 'UnBindError') {
          route = {name: 'BossBindAccount', query: {openId: err.message}}
        }
        console.error(err)
      })
      .finally(() => {
        let flag = window.initPath.indexOf('/Service/QY') >= 0 || window.initPath.indexOf('/Service/Help') >= 0
        if (flag) {
          renderApp({path: window.initPath})
        } else if (route) {
          renderApp(route)
        } else {
          renderApp()
        }
      })
  }
})
yjj5855 commented 5 years ago

下面的逻辑是之前写网页的 现在想移植到小程序 昨天是可以的 今天就跑不起来了

yjj5855 commented 5 years ago

@F-loat 找到问题了 我先用最简单的main.js可以启动 然后把复杂的main.js复制进去也可以 但是直接用复杂的main.js启动就会报上面的错

F-loat commented 5 years ago

main.js 会作为模板来生成其他页面的入口文件,你的代码里有一部分解析的时候有问题,你定位看看,我晚点才能试

yjj5855 commented 5 years ago

我加了一个route = null 的变量导致的 去掉就好了

F-loat commented 5 years ago

这个后面我优化下吧,另外建议业务逻辑放在 app.vue 里