【发布时间】:2017-10-03 19:38:24
【问题描述】:
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是一个异步函数,并且根据您要访问的端点的数量,使用 redux 和类似 redux-saga 的东西来处理可能更有意义你的州。 -
我的应用程序将严重依赖端点,实际上通过允许用户在树结构中导航来永久地向用户显示数据库中的内容。
-
好的,如果你能提供一个更完整的工作示例,我可以帮助你展示你想要做什么。
-
这实际上是现在所有的东西,但我会尝试研究 redux。
-
好的,我强烈推荐 redux-saga 进行异步操作!如果您需要任何帮助,可以@我的用户名。
标签: reactjs material-ui