开发Taro
小程序的时候,想要挂在globalData
到关键字Taro
上,但是Typescript
一直提示报错,因此采用下面的方法解决:
1、src
路径下新建app-shim.d.ts
2、填入以下内容:
import Taro, { Component } from '@tarojs/taro'
declare module '@tarojs/taro' {
interface Component {
$api: any
}
let globalData: any
}
其中globalData
为挂载的内容,而另一个$api
是为了实现Component.prototype.$api = xxx
而准备的。
至此,如果要在app.tsx
里面初始化的时候对系统属性进行存储,就可以直接用下面的写法:
componentDidMount () {
Taro.getSystemInfo({
success: e => {
Taro.globalData = {}
Taro.globalData.StatusBar = e.statusBarHeight;
let custom = wx.getMenuButtonBoundingClientRect();
Taro.globalData.Custom = custom;
Taro.globalData.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
}
})
}