Почему Redux.js запускает функцию редуктора несколько раз в init?

Изучение Redux.js и создание демонстрационного приложения.

У меня есть редуктор, подобный этому:

// Imports here
function blocksFunc(state = [], action) {

  switch (action.type) {

  case 'ADD_BLOCK':

    _id++;
    return [...state, {'_class' : 'basic', '_id' : _id }];

  default:

    state = []; 
    return state;
  }
}

const BlockGeneratorReducer = combineReducers({

  blocksFunc,
});

export default BlockGeneratorReducer;

Я успешно обновляю состояние, но при регистрации я получаю следующее при загрузке страницы:

blocksFunc() type: "@@redux/INIT"

blocksFunc(): "@@перевождь/PROBE_UNKNOWN_ACTION_b.f.4.q.y.o.a.v.2.t.9"

blocksFunc() type: "@@redux/INIT"

Так что функция blockFunc запускается три раза с помощью action.type по умолчанию. В каких случаях запускается тип действия "@@redux/INIT" ? Что может "@@redux/PROBE_UNKNOWN_ACTIOM" ссылаться на?

Полный источник можно найти на git: https://github.com/JaakkoKarhu/redux-react-blockgenerator

Рабочая демонстрация загружается на мой сервер: http://jaakkokarhu.com/playground/redux-block-generator/

Так как новые с React и Redux, все остальные комментарии относительно источника также очень приветствуются.

EDIT:

blocksFunc() отредактирован в соответствии с рекомендацией DavidWalshes.

Ответы

Ответ 1

@@redux/INIT запускается дважды специально. Первый раз для тестирования combReducers, второй - фактический init: https://github.com/rackt/redux/issues/382

Поскольку TenorB указал на комментарии к комментариям, для целей тестирования также запускается @@redux/PROBE_UNKNOWN_ACTION.

Итак, в конце концов, эти события не запускаются случайно.