收藏
回答

globalData 未定义错误,求详细解决教程?

// pages/madeph/madeph.js

const app = getApp();

/**

 * 大概两部分:

 * 1、先把用户上传的头像画出来,类一个圆

 * 2、把前一个页面传过来的头像框(中间透明)在画上去就基本结束了

 */

Page({


  /**

   * 页面的初始数据

   */

  data: {

    src: '',

    bgsrc: '',

    bgcss:''

  },


  //选择用户自己头像图片

  upload() {

    wx.chooseImage({

      count: 1, // 默认9

      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有

      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

      success(res) {

        const src = res.tempFilePaths[0]

        //将选择的图传至upload页处理

        wx.navigateTo({

          url: `../upload/upload?src=${src}`

        })

      }

    })

  },


  //生成头像,即先画图像再画图像框

  generate() {

    var self = this;

    var contex = wx.createCanvasContext('ahaucanvas'); //ttcanvas为该canvas的ID

    //var contex = ctx.getContext('2d');

    var avatarurl_width = 840; //这个是画布宽

    var avatarurl_heigth = 840; //这个是高

    // var avatarurl_x = 50;

    // var avatarurl_y = 50;

    // contex.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);//这个地方我画了个头像的圆

    // contex.clip();

    contex.drawImage(self.data.src, 127, 120);

    contex.restore();

    contex.save();

    contex.beginPath(); //开始绘制

    // contex.arc(150, 50, 30, 0, Math.PI * 2, false);

    // contex.clip();

    //contex.arc(25, 25, 25, Math.PI * 2, false);

    //contex.clip();

    contex.drawImage(self.data.bgsrc, 0, 0, avatarurl_width, avatarurl_heigth); // 这个是我的背

    contex.restore();

    // contex.setFontSize(20)

    // contex.fillStyle = "#fff";

    // contex.fillText(self.data.gameConfig.myScore, 130, 132)

    // contex.restore();

    contex.draw(true, setTimeout(function() {

      wx.canvasToTempFilePath({ //导出图片

        width: 840,

        height: 840,

        destWidth: 840,

        destHeight: 840,

        canvasId: 'ahaucanvas',

        success: res => {

          wx.saveImageToPhotosAlbum({

            filePath: res.tempFilePath,

            success: function(data) {

            // console.log(data);

              wx.showToast({

                title: '保存成功',

                icon: 'success',

                duration: 2000

              })

            },

            fail: function(err) {

              // console.log(err);

              if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny"{

                // console.log("用户一开始拒绝了,我想再次发起授权")

                // console.log('打开设置窗口')

                wx.openSetting({

                  success(settingdata) {

                    console.log(settingdata)

                    if (settingdata.authSetting['scope.writePhotosAlbum']) {

                      // console.log('获取权限成功,给出再次点击图片保存到相册的提示。')

                      wx.showToast({

                        title: '请再次保存',

                        icon: 'success',

                        duration: 2000

                      })

                    } else {

                      // console.log('获取权限失败,给出不给权限就无法正常使用的提示')

                      wx.showToast({

                        title: '获取权限失败,可能导致保存图片无法正常使用',

                        icon: 'none',

                        duration: 2000

                      })

                    }

                  }

                })

              }

            }

          })

        }

      }, this)

    }, 100))

  },

  onLoad(option) {

    var that = this;

    var bgcss = app.globalData.toubgsrc.substr(14, 2);

    that.setData({

      bgsrc: app.globalData.toubgsrc,

      bgcss:bgcss

    });

    // console.log(that.data.bgsrc);

    // console.log(that.data.bgcss);

    let { avatar } = option;

    if (avatar{

      that.setData({

        src: avatar

      });

    }

  }

})

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

3 个回答

  • 北岸初晴°
    北岸初晴°
    2020-05-26

    第一张是app.js 第二张是页面里面用到的 我是这样写的 一直没有遇到过你这个问题

    2020-05-26
    有用 1
    回复
  • 明天你好
    明天你好
    2020-05-12

    百度搜答案是这个,但是不知道对不对?然后怎么解决?

    求大神解决,跪谢哈

    2020-05-12
    有用 1
    回复
  •  
     
    2020-05-11

    你确定你报错的是 madeph.js 文件的 120 行??? 我看错误信息提示的是 /pages/select/select.js 文件的 77 行啊

    2020-05-11
    有用 1
    回复 7
    • 明天你好
      明天你好
      2020-05-12
      是这个函数“globalData”出现错误了吗?
      2020-05-12
      回复
    •  
       
      发表于小程序端
      2020-05-13回复明天你好
      根据报错提示,是这里出了问题,但不是globalData的问题,而是app的问题,因为报错是说不能够从undefined中读取属性 globalData,这表明你的app这个变量是undefined,而造成这种情况的原因各种各样,在没看到完整代码的情况下无法判断,建议你上传一个代码片段
      2020-05-13
      1
      回复
    • 明天你好
      明天你好
      2020-05-13回复 
      这个就是select.js 中的代码片段
      2020-05-13
      回复
    •  
       
      2020-05-13回复明天你好
      额.. 我说的代码片段是微信开发者工具中 新建 代码片段 在里面提供一个可以复现问题的项目  https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html,而不是代码的某一段
      2020-05-13
      1
      回复
    • 明天你好
      明天你好
      2020-05-13回复 
      https://developers.weixin.qq.com/s/AXhBGjmg7jhJ
      2020-05-13
      回复
    查看更多(2)
登录 后发表内容
问题标签