我在redux应用程序中有一个组件需要从远程服务器获取数据。
拨打电话并处理其所有逻辑的适当位置在哪里?动作创作者?生命周期方法中的智能组件,如componentDidMount?
答案 0 :(得分:1)
componentDidMount
是进行API调用的正确位置。有时您可能需要componentWillMount
,具体取决于您希望数据的早期。
我还建议查看redux-thunk,它可以帮助创建获取数据的操作。
答案 1 :(得分:1)
这取决于你的情况。
如果您使用smart / dumb
组件概念构建应用程序,在我看来,执行api调用的最佳位置是componentDidMount
生命周期回调:
// SomeComponent.js
// ... other methods ...
constructor(props) {
super(props);
this.state = {
todos: [],
};
}
componentDidMount() {
// `axios` is ajax library
axios.get('/todos')
.then(todos => {
this.setState({
todos: todos
});
});
}
答案 2 :(得分:0)
正如官方文档中所述:https://facebook.github.io/react/tips/initial-ajax.html
获取componentDidMount中的数据。当响应到达时,将数据存储在状态中,触发渲染以更新UI。