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

Alk*_*anV 4 javascript ecmascript-6 reactjs react-native

当我尝试在组件中初始化状态时,它给我SyntaxError:出现意外的令牌

   constructor(props) {
    super(props);

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

Run Code Online (Sandbox Code Playgroud)

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 }); 

Run Code Online (Sandbox Code Playgroud)

markedDates = _markedDates 线。

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

Mah*_*Ali 7

使用:而不是=inside {}。从对象初始化器

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

this之前也要使用state

constructor(props) {
    super(props);

    this.state = {
      isFromDatePicked:false,
      isToDatePicked:false,
      markedDates:{},
    }
  }
Run Code Online (Sandbox Code Playgroud)

而且在setState您传递对象时,请使用:而不是=

this.setState({ isFromDatePicked: true, isToDatePicked: true, markedDates :_markedDates });
Run Code Online (Sandbox Code Playgroud)