为什么控制台日志记录在 React 中未定义?

why is console logging this is undefined with react?

提问人:Ryan 提问时间:12/9/2022 更新时间:12/9/2022 访问量:53

问:

我最近又回到了编码,我正在尝试在udemy上学习反应。此代码应从网站获取 JSON 文件并对其进行控制台 .log。相反,我收到一个这是未定义的错误,我如何让它正确地记录从获取的网站中获取的信息并删除这是未定义的错误?

import {Component} from 'react';
import logo from './logo.svg';
import './App.css';


class App extends Component() {
  
  constructor(){
    super();

    this.state ={
monsters:[],
    };
  }
  
 componentDidMount(){
   fetch('https://jsonplaceholder.typicode.com/users').then((response)=>response.json()).then((users)=>console.log(users));
 }
render(){
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
         
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
    );
}}

export default App;
reactjs undefined this

评论

0赞 LawrenceWebDev 12/9/2022
实际错误从何而来?实际的错误消息是什么?
0赞 Shyam Mittal 12/9/2022
问题出在类定义中,它应该是:(不带圆括号)。class App extends Component
0赞 Ryan 12/13/2022
这解决了问题,谢谢,我是新手,正在学习,回答另一个问题是整个错误.....未捕获的类型错误:这是未定义的 组件反应 js 应用程序.js:6 工厂反应刷新:6 Webpack 7 react.development.js:313 组件反应 js 应用程序.js:6 工厂反应刷新:6 Webpack 7

答:

2赞 Priyen Mehta 12/9/2022 #1

试试这个,我们现在可以使用函数组件和钩子,因为它易于使用并且对其他人来说是可编辑的。

import React, { useEffect } from 'react';

const App = () => {
 useEffect(() => {
  fetch('https://jsonplaceholder.typicode.com/users')
  .then((response)=>response.json())
  .then((users)=>console.log(users));
 }, []);

return (
 <div className='App'>
   <h1>Hello React.</h1>
   <h2>Start editing to see some magic happen!</h2>
 </div>
);
}

export default App;