lucky-canvas icon indicating copy to clipboard operation
lucky-canvas copied to clipboard

Taro无法渲染网络图片

Open selectweilin opened this issue 3 years ago • 38 comments

  • 你当前是什么框架(必填):taro(3.5.4)
  • 你使用的是哪个包(必填):@lucky-canvas/taro
  • 你当前插件的版本(必填):0.0.12
  • 当前环境是小程序还是浏览器(选填):小程序
  • 详细描述你的bug:

1、无法加载网络图片(小程序配置了域名白名单) image image

2、结束抽奖时控制台报错 image

  • 问题代码(重要):
<template>
  <view>
    <LuckyWheel
      ref="myLucky"
      width="600rpx"
      height="600rpx"
      :prizes="prizes"
      :blocks="blocks"
      :buttons="buttons"
      @start="startCallback"
      @end="endCallback"
    ></LuckyWheel>
  </view>
</template>

<script>
import { ref, reactive, toRefs } from "vue";
import { LuckyWheel } from "../../components/lucky";//同步的github上代码,只做了日志打印,未更改其它代码
export default {
  components: { LuckyWheel },
  setup() {
    const myLucky = ref(null);
    const state = reactive({
      blocks: [
        {
          padding: "13px",
          imgs: [
            {
              src: "https://admin.xashop.szxinao.com/static/images/l_back.png",
              width: "100%",
              height: "100%",
            },
          ],
        },
      ],
      prizes: [
        { fonts: [{ text: "0", top: "10%" }], background: "#e9e8fe" },
        { fonts: [{ text: "1", top: "10%" }], background: "#b8c5f2" },
        { fonts: [{ text: "2", top: "10%" }], background: "#e9e8fe" },
        { fonts: [{ text: "3", top: "10%" }], background: "#b8c5f2" },
        { fonts: [{ text: "4", top: "10%" }], background: "#e9e8fe" },
        { fonts: [{ text: "5", top: "10%" }], background: "#b8c5f2" },
      ],
      buttons: [
        { radius: "50px", background: "#617df2" },
        { radius: "45px", background: "#afc8ff" },
        {
          radius: "40px",
          background: "#869cfa",
          pointer: true,
          fonts: [{ text: "开始\n抽奖", top: "-20px" }],
        },
      ],
    });
    // 点击抽奖按钮会触发star回调
    function startCallback() {
      // 调用抽奖组件的play方法开始游戏
      myLucky.value.play();
      // 模拟调用接口异步抽奖
      setTimeout(() => {
        // 假设后端返回的中奖索引是0
        const index = 0;
        // 调用stop停止旋转并传递中奖索引
        myLucky.value.stop(index);
      }, 3000);
    }
    // 抽奖结束会触发end回调
    function endCallback(prize) {
      console.log("aaaaaaaaaaaaaaaaaaaaaaaaaaaa", prize);
    }
    return {
      ...toRefs(state),
      startCallback,
      endCallback,
      myLucky,
    };
  },
};
</script>

selectweilin avatar Sep 08 '22 02:09 selectweilin

目前来看, 这是v3使用proxy触发了一个bug, 但是目前还没有定位到原因

  • 相关问题: #301

buuing avatar Sep 08 '22 02:09 buuing

目前来看, 这是v3使用proxy触发了一个bug, 但是目前还没有定位到原因

那就是说现在没办法渲染网络图片是吧

selectweilin avatar Sep 08 '22 02:09 selectweilin

那就是说现在没办法渲染网络图片是吧

是的很遗憾, 我使用相同的渲染方式去测试发现无法复现问题, 这非常奇怪

buuing avatar Sep 08 '22 02:09 buuing

那请教一下渐变颜色要怎么设置呢

selectweilin avatar Sep 08 '22 03:09 selectweilin

你用的是大转盘是嘛, 设计图我看一下啥样的渐变色

buuing avatar Sep 08 '22 03:09 buuing

image 大概就是这样的

selectweilin avatar Sep 08 '22 03:09 selectweilin

这很简单

  1. 你让ui把整个渐变色当成背景切下来, 切成一个圆
  2. 然后这个图片放到blocks里的imgs充当背景
  3. 然后设置背景跟随旋转

你可以参考这个示例

buuing avatar Sep 08 '22 03:09 buuing

现在的问题是我放本地的图片也报同样的错 TypeError: Cannot read property 'nodeId' of undefined 图片也无法渲染出来

selectweilin avatar Sep 08 '22 03:09 selectweilin

在小程序调试基础库如果为2.24.1为正常的,高于2.24,1均为不正常的,可以通过这个调试看下 @buuing

SonicAdvan avatar Sep 08 '22 06:09 SonicAdvan

窝草, 难道又是微信小程序偷偷改了api.....?

buuing avatar Sep 08 '22 06:09 buuing

我把大佬代码下载到本地,在小程序中打印,发现打印出来的canvas标签在可以和不可以的时候显示为2种情况,所以有怀疑是不是小程序有问题,但是直接写简单的demo又无法复现

SonicAdvan avatar Sep 08 '22 06:09 SonicAdvan

中秋吧, 我仔细调试一下, 这两天忙着写业务

buuing avatar Sep 08 '22 06:09 buuing

感谢,我把我这边打印的截图放出来,看看对大佬有没有帮助 image image image

SonicAdvan avatar Sep 08 '22 06:09 SonicAdvan

小程序是有点不稳定, 之前肯定是图片显示没问题才发版的

然后小程序每次更新都得整出点幺蛾子, 真是服了

buuing avatar Sep 08 '22 06:09 buuing

当图片无法加载的时候,img的onload和onerror方法都是不执行的哈

SonicAdvan avatar Sep 08 '22 06:09 SonicAdvan

是很不稳定,每个小版本之间也是有的可以,有的不行

SonicAdvan avatar Sep 08 '22 06:09 SonicAdvan

在小程序调试基础库如果为2.24.1为正常的,高于2.24,1均为不正常的,可以通过这个调试看下 @buuing

还真是,我把基础库调到2.24.1就可以加载出图片。也是离谱。。

selectweilin avatar Sep 08 '22 06:09 selectweilin

试试体验版吧, 万一体验版没问题呢

buuing avatar Sep 08 '22 07:09 buuing

试试体验版吧, 万一体验版没问题呢

体验版指的是哪个版本?

selectweilin avatar Sep 08 '22 07:09 selectweilin

直接点发布小程序体验版, 体验版没有版本吧?

buuing avatar Sep 08 '22 07:09 buuing

体验版不就是用的真机上的基础库吗。真机上的基础库基本上都更新到最新的版本了

selectweilin avatar Sep 08 '22 07:09 selectweilin

@buuing 大佬,灵异事件有啥眉目没

selectweilin avatar Sep 15 '22 01:09 selectweilin

没有, 暂未排查出小程序改动了哪里

buuing avatar Sep 15 '22 02:09 buuing

在小程序调试基础库如果为2.24.1为正常的,高于2.24,1均为不正常的,可以通过这个调试看下 @buuing

请问解决了吗?即使报这个错貌似也不影响使用

akFace avatar Mar 02 '23 02:03 akFace

@buuing @selectweilin 请问解决了吗,加载网络图片真的有问题 😹

背景图出不来 image

akFace avatar Mar 02 '23 04:03 akFace

@buuing 我发到了体验版,图片也显示不出来。。。离谱

akFace avatar Mar 02 '23 10:03 akFace

图片url加白名单了吗

buuing avatar Mar 02 '23 10:03 buuing

图片url加白名单了吗

刚刚加了,还是一样的报错 😹

akFace avatar Mar 02 '23 10:03 akFace

刚刚加了,还是一样的报错 😹

你用的vue2还是vue3

buuing avatar Mar 02 '23 10:03 buuing

刚刚加了,还是一样的报错 😹

你用的vue2还是vue3

vue3

akFace avatar Mar 02 '23 10:03 akFace