Skip to content

Instantly share code, notes, and snippets.

Синхронизация с сервером и редьюс

Ситуация: есть какой-то дашбоард, на котором можно добавлять/удалять/изменять какие-то элементы. Тут всё прозрачно, пользователь совершает действие, диспатчим экшн, редьюсим, рисуем обновлённую версию. Встаёт задача синхронизировать состояние этого дашборда с сервером и всё ломается. Смотрим доку (http://redux.js.org/docs/advanced/AsyncActions.html) и делаем, как там, т.е. диспатчим два раза — послали запрос и получили ответ, всё понятно.

Проблема в том, что у меня или пояляется копипаст кода редьюса, или данные редьюсятся не в редьюсере, а в экшене. И то и то упячка какая-то, на мой взгляд.

Примерный код:

// reducer.js

const dashboardItems = (state = [], action) => {
" My Bundles
Bundle 'tpope/vim-ragtag'
Bundle 'tpope/vim-haml.git'
Bundle 'tpope/vim-markdown.git'
Bundle 'tpope/vim-git.git'
" Bundle 'tpope/vim-surround'
Bundle 'msanders/snipmate.vim'
Bundle 'edsono/vim-matchit'
Bundle 'altercation/vim-colors-solarized'
Bundle 'othree/html5.vim'
" NERDCommenter provides a bunch of key mapping for working with comments in a
" very fast and efficient manner
" Homepage: https://github.com/scrooloose/nerdcommenter
Bundle 'ddollar/nerdcommenter.git'
" Full path fuzzy file, buffer and MRU file finder for Vim
" Usage: <c-p> or run :CtrlP
" Homepage: https://github.com/kien/ctrlp.vim
Bundle 'kien/ctrlp.vim'