首页 > 解决方案 > 在构造函数中初始化状态时出现意外标记

问题描述

当我尝试在组件中初始化状态时,它给了我 SyntaxError: Unexpected token at

   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线。

我不知道它为什么会抛出这样的错误。任何帮助将不胜感激,谢谢。

标签: javascriptreactjsreact-nativeecmascript-6

解决方案


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

但是,文字或初始化符号的优点是,您可以快速创建具有大括号内属性的对象。您只需记下key: value以逗号分隔的对列表

this以前也用state

constructor(props) {
    super(props);

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

而且setState你正在传递一个对象,所以使用:而不是=

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

推荐阅读