Taro: pxTransform在微信小程序中无法获取到config中的配置,导致得到的rpx数值不对

Created on 19 Jun 2020  ·  2Comments  ·  Source: NervJS/taro

问题描述


在config/index.js中配置designWidth为375增加375:1/2到deviceRatio中,得到的尺寸理论上应该是2传入尺寸,但得到的确实1传入尺寸

复现步骤

  1. 在config/index.js中增加如下配置
    {
    designWidth: 375,
    deviceRatio: {
    '375': 1 / 2,
    '640': 2.34 / 2,
    '750': 1,
    '828': 1.81 / 2,
    },
    }
  2. import Taro from "@tarojs/taro";
  3. console.log(Taro.pxTransform(20))
  4. 控制台输出“20rpx”

期望行为


输出"40rpx"

报错信息

系统信息


👽 Taro v3.0.0-beta.5

Taro CLI 3.0.0-beta.5 environment info:
System:
OS: Linux 4.4 Ubuntu 18.04.2 LTS (Bionic Beaver)
Shell: 4.4.19 - /bin/bash
Binaries:
Node: 12.14.0 - ~/.nvm/versions/node/v12.14.0/bin/node
npm: 6.14.5 - ~/.nvm/versions/node/v12.14.0/bin/npm
npmPackages:
@tarojs/components: 3.0.0-beta.5 => 3.0.0-beta.5
@tarojs/taro: 3.0.0-beta.5 => 3.0.0-beta.5
@tarojs/webpack-runner: 3.0.0-beta.5 => 3.0.0-beta.5
eslint-config-taro: 3.0.0-beta.5 => 3.0.0-beta.5
react: ^16.10.0 => 16.13.1

补充信息


image
在pxTransform中获取不到config里的配置项

如果您有功能上的建议,可以提到 FeatHub

使用上的问题,欢迎在「Taro 社区」一起交流

Most helpful comment

在页面上使用的话需要先使用 initPxTransform 对功能进行初始化。文档上没有描述清楚这件事。。。

对的,初始化代码:

const designWidth = 750
const { windowWidth } = Taro.getSystemInfoSync()

Taro.initPxTransform({
  designWidth: windowWidth,
  deviceRatio: {
    [windowWidth]: windowWidth / designWidth
  }
})

All 2 comments

在页面上使用的话需要先使用 initPxTransform 对功能进行初始化。文档上没有描述清楚这件事。。。

在页面上使用的话需要先使用 initPxTransform 对功能进行初始化。文档上没有描述清楚这件事。。。

对的,初始化代码:

const designWidth = 750
const { windowWidth } = Taro.getSystemInfoSync()

Taro.initPxTransform({
  designWidth: windowWidth,
  deviceRatio: {
    [windowWidth]: windowWidth / designWidth
  }
})
Was this page helpful?
0 / 5 - 0 ratings