React Native中super(props)真的已废弃还是仅VS Code警告?
解决React中
super(props)废弃警告的问题 Hey there, let's clear up this confusing warning for you!
为什么会出现这个警告?
在React的较新版本中,super(props)确实被标记为废弃状态,但那个警告里的链接完全是误导——它指向的是旧的上下文API文档,和你现在使用的基础类组件构造函数写法没有半毛钱关系。
核心原因是:React现在会自动将props绑定到类组件实例上,你再也不需要手动把props传递给super()了。
针对你的代码的解决方案
你的组件构造函数代码是:
constructor(props) { super(props); this.state = { }; }
你有两种更简洁且符合当前React规范的写法:
完全去掉构造函数(推荐)
如果你只是初始化state,直接在类中声明state即可,不需要构造函数:class YourComponent extends React.Component { state = { }; // 你的其他组件方法... }保留构造函数但简化写法
如果你确实需要构造函数来做其他初始化逻辑(比如绑定事件处理函数),只需要写super()而不是super(props):constructor(props) { super(); this.state = { }; // 这里如果需要用到props,直接用传入的props参数就行,不用this.props }
额外说明
如果在构造函数里你非要用this.props(虽然现在几乎没有必要),其实即使你只写super(),React也会在构造函数执行完成后把props绑定到实例上,所以后续的方法里依然能正常访问this.props。
内容的提问来源于stack exchange,提问作者Mash
相关产品推荐
相关产品推荐

