无法在 React.js 中设置未定义的属性“props”
Cannot set property ‘props’ of undefined in React.js
当我们在 React.js 中声明类组件时添加一组额外的括号时,会出现“cannot set property ‘props’ of undefined”错误。
要解决该错误,请删除Component
类声明后的括号,例如class App extends Component {}
.
下面是错误如何发生的示例。
应用程序.js
import React, {Component} from 'react'; // 👇️ Notice extra set of () after Component class App extends Component() { render() { return <div>Example</div>; } } export default App;
当我们尝试从Component
构造函数扩展并返回错误时,我们放置了一组额外的括号。
要解决该错误,您必须Component
在声明类组件时删除后面的括号。
应用程序.js
import React, {Component} from 'react'; // ✅ Works class App extends Component { render() { return <div>Example</div>; } } export default App;
发生错误的原因是我们将Component
构造函数作为函数调用,在这种情况下this
关键字等于
undefined
。
并且当以下行运行时,尝试props
在值上设置属性
undefined
会引发错误。
// 👇️ `this` was `undefined` here this.props = props;
这种行为不是 React.js 特有的,这也是 JavaScript 中工作的确切方式。
当
扩展
类或构造函数(本质上是同一件事)时,请确保不要添加额外的一组括号,因为您会调用该类并得到错误。