[Taro] taro中定义以及使用全局变量

 taro中定义以及使用全局变量

 

错误的姿势

 

// app.tsx文件中
class App extends Component {
  componentDidMount() {
    this.user = { name: '张三', id: 1 };
  }
}
// index.tsx 文件中
const app = Taro.getApp();
export default class Index extends Component {
  componentWillMount() {
    console.log(app.user);
  }
}

在taro中 getApp()只能取到一开始定义的值,并不能取到改变后的值


Taro 中推荐使用 Redux 来进行全局变量的管理,但是对于一些小型的应用, Redux 就可能显得比较重了,这时候如果想使用全局变量,推荐如下使用。 新增一个自行命名的 JS 文件,例如 global_data.js,示例代码如下:


const globalData = {}
export function setGlobalData (key, val) {
  globalData[key] = val
}
export function getGlobalData (key) {
  return globalData[key]
}




随后就可以在任意位置进行使用啦


import { getGlobalData, environment } from './path/name/global_data'



参考:
https://nervjs.github.io/taro/docs/best-practice.html#%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%5D(https://nervjs.github.io/taro/docs/best-practice.html#%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F)





posted @ 2019-07-25 08:37  wukong1688  阅读(2247)  评论(0编辑  收藏  举报