-
准备工作
通过create-react-app 创建的根目录下有一个public目录,请求时会到该目录下寻找数据,因此把假数据放到该目录下
下载并且引入axios
模块 -
实现过程
在componentWillMount
下请求数据,
componentWillMount () {
axios.get ('http://localhost:5000/test/menu.json')
.then (
res => {
this.setState ({
data: res.data,
isLoading : true
},() => {
const { data } = this.state
console.log(data)
})
}
)
}
上面代码块中的isLoading
是用来控制this.setState({})
异步更新完数据后再执行一次render()函数的开关。
if(!isLoading) {
return null
}
return (
数据更新完成后执行的代码块
)
再本题中,请求数据相对简单,将异步请求的数据放到render函数中进行更新显示是需要巧妙控制的。
react中函数加载顺序是
componentWillMount()=》render()=》componentDidMount()
在这里componentWillMount替换为componentDidMount同样可以实现