3 回答
TA贡献1799条经验 获得超8个赞
您似乎希望从远程服务器对组件中的某些数据进行最新更新。如果这是您想要实现的目标,您可以简单地每 x 秒使用setInterval(). 在你的componentDidMount()
componentDidMount() {
this.interval = setInterval(() => {
const data = this.fetchData() // Return result of an ajax call
this.setState({myData: data})
}, 1000) // Replace x with what suits you
}
还记得清除你的间隔 componentWillUnmount()
componentWillUnmount() {
clearInterval(this.interval);
}
TA贡献1845条经验 获得超8个赞
您的问题之一似乎在这里:
render(){
return(
<div> this.state.x </div>
)
}
在 React 中,为了访问某个状态,您必须在渲染区域中使用“{}”来输入 javascript。这实际上是关于 React 的一大优点。这允许您访问状态中的变量,甚至可以访问“render(){”和“return()”区域之间的任何 javascript。
数据不返回的原因之一是没有访问 javascript 环境,因为它将“this.state.x”呈现为文本而不是状态。
尝试
render(){
return(
<div> {this.state.x} </div>
)
}
TA贡献1909条经验 获得超7个赞
请使用promise进行API获取,请检查componentDidMount
constructor(props){
super(props);
this.state = ({ x:0 })
}
componentDidMount(){
fetchingdata()
.then((res) => {
this.setState({x:res[x]})
})
}
componentDidUpdate(prevState, prevProps, snapshot){
if(prevProps.x !== this.state.x){
return fetchingdata()
}
}
render(){
return(
<div> this.state.x </div>
)
}
添加回答
举报