Я следовал за документооборотом и печатал создателей редукционных действий, используя объединение (https://flow.org/en/docs/react/redux/#toc-typing-redux-actions)
, поэтому у меня есть файл со ВСЕМИ действиями, собранными в 1 объединение, как в примере:
type Action =
| { type: "FOO", foo: number }
| { type: "BAR", bar: boolean }
| { type: "BAZ", baz: string };
Action
тип импортируется в мои редукторы и используется, как в примере из документов:
function reducer(state: State, action: Action): State {
switch (action.type) {
case "FOO": return { ...state, value: action.foo };
case "BAR": return { ...state, value: action.bar };
default:
(action: empty);
return state;
}
}
Проблема:
Как я уже упоминал, я собрал ВСЕ действия водин файл - в настоящее время ~ 600 действий в одном объединении. Я заметил, что в последнее время потоковому серверу требуется сумасшедшее время для запуска (более 100 секунд), перепроверка потока также является проблемой, если изменение связано с редуктором. Согласно журналам потока, файлы, содержащие редукторыпомечены как «Медленное слияние» - от 15 до 45 с.
После экспериментов я заметил, что изменение типа Action
на any
сокращает время с 100 до 9 с.
Вопрос:
- может ли это быть связано с огромным
Action
union? - , если я разделю его на несколько меньших типов, которые будут содержать только действия для импорта вконкретный редуктор или это неправильный путь к FIX моя проблема?