【发布时间】:2020-11-25 16:36:16
【问题描述】:
所以我有这两个类
App.js
import React, { Component } from "react";
import APIController from './APIController';
import Beer from './Beer';
import "./App.css";
class App extends Component{
state = { beers: [] };
componentDidMount(){
console.log(APIController.getAllBeers());
}
render(){
return (
<span className="App">
{this.state.beers.map(beer => <Beer beer={beer} />)}
<button>Add New Beer +</button>
</span>
)
}
}
export default App;
APIController.js
class APIController {
static getAllBeers() {
fetch('/beers')
.then(res => res.json())
.then(beers => { return beers });
}
}
export default APIController;
在componentDidMount 方法上添加断点表明APIController 类未定义,因此在控制台中打印undefind。我不明白出了什么问题。有什么想法吗?
【问题讨论】:
-
由于您的
getAllBeers()方法没有返回任何内容,它将打印undefined -
哦,所以我有这个
{ return beers }的方式不是返回从 API 获得的啤酒? -
是的。
return内的.then()将以异步方式工作。更新我的答案(需要更改两个文件代码)。检查它是否按预期工作
标签: javascript reactjs class import react-router