taro微信小程序转为taro代码-踩坑记录

从今天开始决定使用Taro开发小程序,有坑就慢慢填,祝我好运吧,以后我会把我遇到的问题找时间都记录在这里。

1、Taro里使用currentPage获取当前所在页的实例使用setDate方法失效

打印发现在taro里Taro.getCurrentPages().pop()和微信小程序里的wx.getCurrentPages().pop()仔细看是不一样的,最终发现

`Taro.getCurrentPages().pop().$component===wx.getCurrentPages().pop()

注意这里的wx.getCurrentPages().pop()是指在微信小程序里的原生方法,在taro里打印wx.getCurrentPages().pop()和Taro.getCurrentPages()是一样的,具体原因不明可能是taro官方对Taro.getCurrentPages()进行了二次封装吧

2、Taro convert 转taro时会缺少部分文件

< text class="IredSum" wx:if="{{redObj.remainCount}}">今日可拆{{redObj.todayCount<1?0:redObj.todayCount}}</ text >

把{{}}的三目运算去掉就能正常转换这个文件了,我也觉得很奇怪

3 map循环报错

报错:VM4024:1 TypeError: Cannot read property 'map' of undefinedVM4024:1 TypeError: Cannot read property ‘map’ of undefined
加上默认的props就好了

class _C extends Taro.Component {
  constructor(props) {
    super(props);
  }
  static defaultProps={
    proList:[],
  }
  ....
}

4、在小程序中可以在子组件直接修改props里的数据,在子组件中是生效的,但是在taro中这样修改无效,可以改为修改父元素的data来达到修改子组件props的效果

closeHandler() {//关闭按钮
 Taro.getCurrentPages().pop().$component.setData({//修改父组件的状态
    ruleShow: false
  })
}

5、taro convert转成taro代码后,在父组件中的子组件标签名会转换错误,以前驼峰命名的,转换后没有驼峰了,手动改一下就好了

在这里插入图片描述在这里插入图片描述

6、Taro.canvasToTempFilePath保存图片报错 errMsg: “canvasToTempFilePath: fail canvas is empty”

在这里插入图片描述
解决方法:Taro.canvasToTempFilePath的第二个参数是传入上下文的this,在taro里需要改成this.$scope,最好把相关方法需要传入的this都改一下
比如:
webStorm的Eslint不会配,所以忽略报错波浪线

const ctx = Taro.createCanvasContext('Canvas',this.$scope)

参考这位大佬的,具体请去链接:https://segmentfault.com/a/1190000019299888?utm_source=tag-newest

7、在mobx方法中找不到参数,是因为没有正确调用mobx里面的方法

let {goSeartchHandler}=this.props.seartch
goSeartchHandler(head)  //错误 这样调用会导致这个方法内找不到this
this.props.seartch.goSeartchHandler(head) //正确

8、taro报错找不到这个页面,怎么都解决不了

解决方法:试一下修改文件名为index.tsx

9、mobx里面状态改变页面没有重新渲染

解决方法:检查一下 mobx 有没有写该状态的初始值

10、在render函数中无法侦听到mobx中数组长度的变化,如下面的例子tabs初始值是空数组,数组更新后,在jsx中tabs的length一直是0

数组长度一直是0
解决方法:在mobx另写一个状态表示该数组的长度

11、jsonp请求在编辑器中正常运行,在真机中无法正常请求,真机调试面板也找不到这项请求。

解决方法:支付宝小程序应该是不支持jsonp请求,改用get或其他请求方式。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值