在Redux中获取数据

时间:2016-08-09 13:55:13

标签: javascript reactjs redux

我在redux应用程序中有一个组件需要从远程服务器获取数据。

拨打电话并处理其所有逻辑的适当位置在哪里?动作创作者?生命周期方法中的智能组件,如componentDidMount?

3 个答案:

答案 0 :(得分:1)

componentDidMount是进行API调用的正确位置。有时您可能需要componentWillMount,具体取决于您希望数据的早期。

我还建议查看redux-thunk,它可以帮助创建获取数据的操作。

https://github.com/gaearon/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。