constructor中初始化state值

来源:3-11 【概念理解】State vs Props

Zhang_Kyra

2021-06-20

老师您好,既然能在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回答

阿莱克斯刘

2021-06-22

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

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

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

//img.mukewang.com/szimg/60d0d5cc09b1105919101666.jpg

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

0
1
Zhang_Kyra
非常感谢!
2021-06-22
共1条回复

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程