使用React / Redux API的正确方法

时间:2016-04-04 15:41:00

标签: reactjs redux

我对React中的组件生命周期感到有点困惑。考虑通过调度操作getTodo()并更新整个应用程序的状态来加载其初始状态的组件

    componentDidMount() {
      var _this = this;
      axios.get('/api/todo').then(function(response) {
        _this.props.actions.getTodo(response.data);
      }).catch(function(err) {
        console.log(err);
      });
    }

我可以在componentWillUnmount()中使用什么来防止内存泄漏?如果我选择这样做,当我使用这种方法从另一个页面返回页面时,如何更新状态?

另外,将页面所需的道具存储为状态并更新状态更好吗?我对这种方法的关注是,它只是不更新​​整个应用程序的状态,而其他可能需要相同道具的组件必须经历相同的不必要的过程,这可以通过使用第一种方法来避免。

1 个答案:

答案 0 :(得分:1)

You should avoid doing api call in a component. React offers an interface "nothing" more.

You should dispatch an action. In fact an action creator can be used (check redux-thunk or a redux-api-middleware). Your state app must be hold by redux store, not in your interface.

You probably have a "top" component will is mount only once, it can dispatch this action (action which is able to get initial state)

I hope it will help