taro icon indicating copy to clipboard operation
taro copied to clipboard

designWidth 是function的时候,Taro.pxtransform(0)使用会报错,找不到deviceRatio

Open boboyaohuo opened this issue 2 years ago • 1 comments

相关平台

微信小程序

复现仓库

https://github.com 小程序基础库: 2.20.0 使用框架: React

复现步骤

期望结果

pxtransform方法正常使用

实际结果

1

环境信息


  Taro CLI 3.4.13 environment info:
    System:
      OS: macOS 12.3.1
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 16.13.1 - /usr/local/bin/node
      Yarn: 3.1.1 - /usr/local/bin/yarn
      npm: 8.1.2 - /usr/local/bin/npm
    npmGlobalPackages:
      typescript: 4.6.4

boboyaohuo avatar Jul 20 '22 07:07 boboyaohuo

遇到同样的问题,关键使用了三方组件库,designWidth 必须用 function,否则三方组件样式有问题。好坑啊,Taro 开发体验真的是太差了。

limuyao1996 avatar Aug 15 '22 12:08 limuyao1996

我也遇到了,正打算提issues,结果看见了这个。 用第三方库,比如@antmjs/vantui的时候,库中会调用Taro.pxTransform函数,转换size。 然而在getPxTransform 方法中,拿到的designWidth 也是一个函数,而不是执行后的返回值,导致报错 image

xuchen522178898 avatar Sep 26 '22 05:09 xuchen522178898

@Chen-jj 请问大佬这里有解决吗,我升级到3.5.10依旧有这个问题

undeadfrost avatar Dec 27 '22 10:12 undeadfrost

if (!(designWidth in deviceRatio)) {
            throw new Error("deviceRatio \u914D\u7F6E\u4E2D\u4E0D\u5B58\u5728 ".concat(designWidth, " \u7684\u8BBE\u7F6E\uFF01"));
        }
        return parseInt(size, 10) * deviceRatio[designWidth] + "rpx";

designWidth 如果为一个方法,全局(比如tabbar)不能使用 Taro.pxTransform

yijinc avatar Dec 31 '22 09:12 yijinc

对于三方组件库,例如@antmjs/vantui 只能库来就行修改吗?

undeadfrost avatar Jan 03 '23 06:01 undeadfrost