声明和初始化变量的方式不同

时间:2018-04-12 03:46:19

标签: react-native

版本A:

class MainScreen extends Component {
  dateArray = [];

  datePreparation(){
    this.dateArray.push( moment(currentDate).format('YYYY-MM-DD') ) 
  }
}

版本B:

const dateArray = [];
class MainScreen extends Component {

  datePreparation(){
    dateArray.push( moment(currentDate).format('YYYY-MM-DD') ) 
  }
}

遇到了这种声明变量的两种不同方式,想知道是否存在任何重大差异。在版本A上,为什么我们无法使用const/let/var初始化变量dateArray

1 个答案:

答案 0 :(得分:0)

考虑到dateArray不应在多个MainScreen个实例之间共享,版本A会更好。

对于版本A,dateArrayclass member variable,不需要使用var/let/const进行声明。它等于

  

constructor(){this.dateArray = []}

顺便说一句,如果您没有使用mobx之类的内容,如果dateArray更改,版本A / B将不会触发重新呈现。