可能是因为异步请求导致数据还没返回就已经被组件渲染,可以在生命周期函数中使用setState方法来更新组件状态,从而达到重新渲染组件的效果。
示例代码如下:
import React, { Component } from 'react';
import axios from 'axios';
class Example extends Component {
constructor(props) {
super(props);
this.state = {
data: null
};
}
componentDidMount() {
axios.get('/api/data').then(response => {
this.setState({
data: response.data
});
}).catch(error => {
console.log(error);
});
}
render() {
const { data } = this.state;
return(
{data ? (
{data}
) : (
Loading...
)}
);
}
}
export default Example;