请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

constructor中初始化state值

老师您好,既然能在constructor中初始化state的值,为什么 this.state.isOpen = false的写法会报错。

constructor(props: Props) {
super(props);
this.state.isOpen = false;//error Cannot assign to ‘isOpen’ because it is a read-only property.
this.state =
{
isOpen: false,
};
}

正在回答

1回答

报错信息说,“isOpen是个只读的属性,不能直接赋值”。

关于如何在constructor中给state进行初始化,在react官方文档中说得很明确,1. 初始化state不能使用setState(); 2. 需要通过对象(也就是花括号 { })来赋值。

https://zh-hans.reactjs.org/docs/react-component.html#constructor

https://img1.sycdn.imooc.com//szimg/60d0d5cc09b1105919101666.jpg

这就是为什么我们不能直接使用 "this.state.isOpen = false" 这种方式

0 回复 有任何疑惑可以回复我~
  • 提问者 Zhang_Kyra #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2021-06-22 11:35:13
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信