javascript - 在构造函数中初始化状态时出现意外标记
问题描述
当我尝试在组件中初始化状态时,它给了我 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
线。
我不知道它为什么会抛出这样的错误。任何帮助将不胜感激,谢谢。
解决方案
使用:
而不是=
里面{}
。从对象初始化器
但是,文字或初始化符号的优点是,您可以快速创建具有大括号内属性的对象。您只需记下
key: value
以逗号分隔的对列表
this
以前也用state
constructor(props) {
super(props);
this.state = {
isFromDatePicked:false,
isToDatePicked:false,
markedDates:{},
}
}
而且setState
你正在传递一个对象,所以使用:
而不是=
this.setState({ isFromDatePicked: true, isToDatePicked: true, markedDates :_markedDates });