在componentWillMount()
我调用fetch
方法获取数据。但是当fetch
未加载时。该组件为render
。
如何修复它。如何在render()
之前获取加载答案 0 :(得分:1)
你做不到。当您获取数据并为组件提供数据时,通常需要检查是否有数据。如果没有,则不渲染任何内容或呈现“无数据”之类的内容。或在那里展示一个旋转器。使用componentDidMount。
class App extends Component {
state = {
data: "",
}
componentDidMount() {
this.fetchData();
}
fetchData() {
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(response => response.json())
.then(json => this.setState( {data: json}));
}
render() {
return (
<div>
{ this.state.data ? <p>{this.state.data.title}</p>: "No data"}
</div>
);
}
}