该代码给了我这个“TypeError:无法读取未定义的属性'名称'”错误,尽管当我 console.log 它给了我对象
import React from "react";
class Random extends React.Component {
constructor(props) {
super(props);
this.state = {
breweries: []
};
}
componentDidMount() {
fetch("https://api.openbrewerydb.org/breweries")
.then(response => response.json())
.then((data) => {
this.setState({
breweries: data,
})
})
}
render() {
const brewery = this.state.breweries[Math.floor(Math.random()*this.state.breweries.length)];
return(
<div>{brewery.name}</div>
)
}
}
export default Random;
直到异步请求完成,
this.state.breweries[Math.floor(Math.random()*this.state.breweries.length)]
实际上会返回undefined
,因为
Math.floor(Math.random()*this.state.breweries.length)
将返回0
,由于this.state.breweries
是一个空数组,它将返回undefined
( [][0]
-> undefined
)。
您必须确保brewery
尚未定义的可能性,例如:
<div>{brewery && brewery.name}</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句