在构造函数中初始化状态时出现意外令牌

时间:2019-04-11 11:14:49

标签: javascript reactjs react-native ecmascript-6

当我尝试初始化组件中的状态时,它会给我 SyntaxError:

处出现意外令牌
   constructor(props) {
    super(props);

    this.state = {
      isFromDatePicked = false,
      isToDatePicked = false,
      markedDates = {},
    }
  }

isFromDatePicked = false行。我还尝试在构造函数之外初始化状态,但是根本无法正常工作。

此外,当我为了测试代码而删除状态初始化时,也会在相同的错误处出现

 let markedDates = { ...this.state.markedDates };
      let [_markedDates, range] = this.setupMarkedDates(this.state.fromDate, this.state.toDate, markedDates);
      if (range >= 0) {
        this.setState({ isFromDatePicked: true, isToDatePicked: true, markedDates = _markedDates }); 

markedDates = _markedDates行。

我不知道为什么会抛出这样的错误。谢谢您的帮助。

1 个答案:

答案 0 :(得分:6)

:中使用=代替{}。从Object initializer

  

但是,文字或初始值设定符表示法的优点是,您可以在花括号内快速创建具有属性的对象。您只需标记由逗号分隔的key: value对列表

也请在this之前使用state

constructor(props) {
    super(props);

    this.state = {
      isFromDatePicked:false,
      isToDatePicked:false,
      markedDates:{},
    }
  }

而且在setState中,您正在传递对象,因此请使用:而不是=

this.setState({ isFromDatePicked: true, isToDatePicked: true, markedDates :_markedDates });