Я использую React redux-saga
и хочу знать, правильно ли я использую много наблюдателей? У меня сейчас 11 наблюдателей.
export default function* root(): SagaIterator {
yield all([
fork(watchBusinessUnit),
fork(watchAwsClient),
fork(watchForm),
fork(watchAwsServices),
fork(watchDeliveryAddress),
fork(watchProducts),
fork(watchAuth),
fork(watchAuthBack),
fork(watchPersonsCompany),
fork(watchPersonsCustomer),
fork(watchDeploy)
])
}
Однако я смог сделать DRY наблюдатель watchForm
, который учитывает условия перед запуском соответствующей саги.
Должен ли я сделать DRY наблюдатель (с условием) как можно больше времени? как ниже?
function* watchForm(): SagaIterator {
while (true) {
const { body, route } = yield take(actions.TRIGGER_FORM)
const token = yield select(jsonwebtoken)
if (route === 'info') {
yield call(infoForm, { ...body, token })
}
if (route === 'services') {
yield call(servicesForm, { ...body, token })
}
if (route === 'altavia-users') {
const { body1, body2 } = body
yield call(servicesForm, { ...body1, token })
yield call(personsForm, { ...body2, token })
}
if (route === 'persons') {
yield call(personsForm, { ...body, token })
}
if (route === 'customer-users') {
yield call(customerUsersForm, { ...body, token })
}
if (route === 'addresses') {
yield call(addressesForm, { ...body, token })
}
if (route === 'products') {
yield call(productsForm, { ...body, token })
}
if (route === 'summary') {
yield call(summaryForm, { ...body, token })
}
}
}
Все мои другие наблюдатели вроде как
function* watchPersonsCompany(): SagaIterator {
while (true) {
const { companyId } = yield take(actions.TRIGGER_PERSONS_COMPANY)
yield fork(sagaPersonsCompany, companyId)
}
}
Это плохо для исполнения?