问题描述

在RN开发过程中,项目运行在android平台时报如下错误信息:

TypeError: expected dynamic type int64', but has type 'null'

初次接触该类型问题,一脸懵。

问题分析

{
  (()=>{
    return this.state.data.length?
      [<Text key={"title"} style={{textAlign: "center", color: "#999", fontSize: px2dp(12), paddingTop: 20}}>{"近期订单"}</Text>]
        .concat(this.state.data.map((item, i) => {
        return <Item key={i} {...item} />
      })):this._noData()
  })()
}
 

在计算fontSize时,应用如下计算方法:

export default function px2dp(px) {
    // return Math.round(px *  deviceW / basePx)
    return px *  deviceW / basePx
}
 

计算结果可能会出现float类型的数据。导致以上错误信息的发生。

解决措施

计算方法做如下修改:

export default function px2dp(px) {
	// 四舍五入操作
    return Math.round(px *  deviceW / basePx)
}
 

web前端开发工程师面试题(react)