Неожиданный токен при инициализации состояния в конструкторе - PullRequest
3 голосов
/ 11 апреля 2019

Когда я пытаюсь инициализировать состояние в компоненте, это дает мне Ошибка синтаксиса: неожиданный токен в

   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 Ответ

6 голосов
/ 11 апреля 2019

Используйте : вместо = внутри {}.Из Инициализатора объектов

Однако преимущество литерала или обозначения инициализатора состоит в том, что вы можете быстро создавать объекты со свойствами внутри фигурных скобок.Вы просто записываете список key: value пар, разделенных запятой

Также используйте this перед state

constructor(props) {
    super(props);

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

А также в setState вы передаетеобъект, поэтому используйте : вместо =

this.setState({ isFromDatePicked: true, isToDatePicked: true, markedDates :_markedDates });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...