http://www.material-ui.com/#/components/list的 List 组件没有渲染异步接收的元素,怎么办?
我在组件的 render() 方法中使用我的列表的方式:
<List children={this.state.elements} />
填写我的状态:
constructor(props) {
super(props);
this.state = {elements: []};
}
async componentDidMount() {
this.setState({elements: this.getInitialState()});
}
async getInitialState() {
var elements = [];
const response = await fetch('api/endpoint/elements');
const result = await response.json();
if (result.status = "success") {
elements.push(<ListItem primaryText="Dummy Data" />);
}
return elements;
}
您需要在 componentDidMount 中等待 getInitialState。
async componentDidMount() {
const state = await this.getInitialState();
this.setState({elements: state});
}
如果你想在设置状态后做一些事情,使用 setState 的这个异步包装器并等待它
setStateAsync(state) {
return new Promise((resolve) => {
this.setState(state, resolve)
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句