Guest User

Untitled

a guest
Jul 18th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. /**
  2. * Пример отмены промиса (race conditions).
  3. * Например, при переключении закладок - выполняется подгрузка данных.
  4. * При клике на вторую вкладку, а потом сразу на первую - запрос по первой вкладке
  5. * всё ещё будет обрабатываться. Обработку уже ненужного запроса - можно прервать.
  6. */
  7. export const fetchTodos = (filter) => (dispatch, getState) => {
  8. if (getIsFetching(getState(), filter)) {
  9. return Promise.resolve();
  10. }
  11.  
  12. dispatch(requestTodos(filter));
  13.  
  14. return api.fetchTodos(filter).then(response => {
  15. dispatch(receiveTodos(filter, response));
  16. });
  17. };
  18.  
  19. /**
  20. * mapDispatchToProps сокращение.
  21. */
  22. // Вместо:
  23. const mapDispatchToProps = (dispatch) => ({
  24. onTodoClick(id) {
  25. dispatch(toggleTodo(id));
  26. },
  27. });
  28.  
  29. const VisibleTodoList = withRouter(connect(
  30. mapStateToProps,
  31. mapDispatchToProps
  32. )(TodoList));
  33.  
  34. // Можно написать вот так:
  35. const VisibleTodoList = withRouter(connect(
  36. mapStateToProps,
  37. {onTodoClick: toggleTodo},
  38. )(TodoList));
Add Comment
Please, Sign In to add comment