【问题标题】:Unexpected token when initializing state in constructor在构造函数中初始化状态时出现意外标记
【发布时间】:2019-09-02 00:18:27
【问题描述】:

当我尝试在组件中初始化状态时,它给了我 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 行。

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

【问题讨论】:

    标签: javascript reactjs react-native ecmascript-6


    【解决方案1】:

    {} 中使用: 而不是=。来自Object initializer

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

    state之前也使用this

    constructor(props) {
        super(props);
    
        this.state = {
          isFromDatePicked:false,
          isToDatePicked:false,
          markedDates:{},
        }
      }
    

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

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

    【讨论】:

    • 我瞎到看不见。非常感谢。
    • @AlkanV 如果您满意,请考虑接受答案。
    • 你可以像这样在构造函数中定义状态。 this.state={}
    猜你喜欢
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多