imageslr / taro-library

Taro + Redux + 本地 Mock Server 微信小程序示例项目
355 stars 69 forks source link

h5下报错 #1

Closed honlyHuang closed 5 years ago

honlyHuang commented 5 years ago

book-list 的 constructor里的这些改到 componentWillMount里咯,要不会报错

componentWillMount(){
    const { type } = this.$router.params;
    switch (type) {
      case "new":
        return Taro.setNavigationBarTitle({ title: "新书速递" });
      case "hot":
        return Taro.setNavigationBarTitle({ title: "近期热门" });
      case "recommend":
        return Taro.setNavigationBarTitle({ title: "为你推荐" });
    }
  }

另外试了一下,支付宝小程序可以跑起来

imageslr commented 5 years ago

谢谢~ 这个项目没兼容小程序外的其他平台,另外这个constructor里调用其他函数是个问题,我现在改一下。

honlyHuang commented 5 years ago

谢谢~ 这个项目没兼容小程序外的其他平台,另外这个constructor里调用其他函数是个问题,我现在改一下。

是个不错的例子,interceptors可能需要改改,参考这里; 我试着跑了支付宝可以跑起来的;百度小程序请求返回了数据,但 js 里报202了。

imageslr commented 5 years ago

很抱歉,我对其他平台不是很了解,如果您有解决办法,欢迎PR,非常感谢!

mikewin commented 5 years ago

book-list 的 constructor里的这些改到 componentWillMount里咯,要不会报错

componentWillMount(){
    const { type } = this.$router.params;
    switch (type) {
      case "new":
        return Taro.setNavigationBarTitle({ title: "新书速递" });
      case "hot":
        return Taro.setNavigationBarTitle({ title: "近期热门" });
      case "recommend":
        return Taro.setNavigationBarTitle({ title: "为你推荐" });
    }
  }

另外试了一下,支付宝小程序可以跑起来 我用taro 1.2.26, h5 下,即使照此修改,也报错, 微信小程序ok

imageslr commented 5 years ago

@mikewin 看报错信息发现是taro-ui组件的报错。使用Taro UI需要配置/config/index.js中的h5:添加esnextModules: ["taro-ui"](参考Taro UI文档)。

另外编译通过后还会报错Cannot read property 'logInterceptor' of undefined。这里你需要把/src/service/interceptors.js中的logInterceptor去掉:

// const interceptors = [customInterceptor, Taro.interceptors.logInterceptor]
const interceptors = [customInterceptor]

或者也可以自己实现一个logInterceptor

honlyHuang commented 5 years ago

@mikewin H5 我调好的提交了 PR 啦,可以看看的;百度和头条端的问题在看