请稍等 ...
×

采纳答案成功!

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

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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号