收藏
回答

页面中的函数不能用剪头函数吗?

剪头函数:

OnfinishTakeOnePic:(filepath)=>{
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.emit('takeOnePictureFinished', {
      filepath: filepath
    });
    wx.navigateBack();
  }
 //传统写法:
OnfinishTakeOnePic:function(filepath){
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.emit('takeOnePictureFinished', {
      filepath: filepath
    });
    wx.navigateBack();
  }

剪头函数写法this指针为undefined,啥情况??

回答关注问题邀请回答
收藏

3 个回答

  • Dream
    Dream
    2020-04-16

    箭头函数你用this指向会指向上一层,然而你上一层没东西,所以你要用箭头函数,只能在函数里面用

    2020-04-16
    有用
    回复 2
    • 李忠
      李忠
      2020-04-16
      在本例子中,剪头函数中的this不是指page吗?
      2020-04-16
      回复
    • Dream
      Dream
      2020-04-16回复李忠
      按理说应该是page全局的
      2020-04-16
      回复
  • 李忠
    李忠
    2020-04-16

    onLoad

    this.ctx.takePhoto的success回调函数中调用都不行


    this不是传过去的,OnfinishTakeOnePic本身是page的函数:
    
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {},
    onLoadfunction (options{
      ......
      },
       OnfinishTakeOnePic:function(filepath){
    

        const eventChannel = this.getOpenerEventChannel()

        eventChannel.emit('takeOnePictureFinished', {

          filepath: filepath

        });

        wx.navigateBack();

      }

    })

    2020-04-16
    有用
    回复
  • 呆
    2020-04-16

    哪里调用给他传个参数this

    onshow:function(){

    this.OnfinishTakeOnePic(this,OnfinishTakeOnePic);
    
    

    }

    2020-04-16
    有用
    回复
登录 后发表内容
问题标签