【发布时间】:2019-01-07 20:52:39
【问题描述】:
当我使用 setState 进行交易时,它会转两次。首先返回数据失败,然后返回数据就绪。控制台先返回 false,然后返回 true。我只想在控制台中返回 true。
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
loading: false,
data: []
};
}
componentDidMount() {
fetch("https://reqres.in/api/users?page=2")
.then(res => res.json())
.then(result => {
this.setState({
data: result.data,
loading: true
});
});
}
render() {
const { loading } = this.state;
console.log(loading);
const dataReady = <div>Data Ready </div>;
const DataFail = <div>Data Fail </div>;
return <div>{loading === true ? dataReady : DataFail}</div>;
}
}
【问题讨论】:
-
你的意思是你只想返回true?
-
是只返回真。
-
你的意思是这样? codesandbox.io/s/rj8po7jzrq
-
您不能只在控制台中返回 true。因为加载的初始状态为假。所以这将在初始渲染之前显示在控制台中。之后,That 将变为 true。
-
你应该查看生命周期函数 shouldComponentUpdate()
标签: javascript reactjs fetch fetch-api