В то время как другие ответы велики и отвечают на вопрос, есть одна вещь, которую следует учитывать при использовании input type="submit"
и button
. С помощью input type="submit"
вы не можете использовать псевдо-элемент CSS на входе, но вы можете для кнопки!
Это одна из причин использования элемента button
над входом, когда дело касается стилизации.
Вы можете изменить of
на from
, чтобы отправить массив, поскольку массив позволяет легко динамически вставлять.
Вот так:
const loadDataEpic = (action$, state$) =>
action$.pipe(
ofType('FETCH_DATA_SUCCESS'),
mergeMap(action => {
const pivotActions = action.context === 'pivot'
? [{ type: 'SET_PIVOT' }]
: [];
return from([
...pivotActions,
{
type: 'RESET_IMAGE_DATA'
},
{
type: 'INITIALISE_FILTERS'
}
]);
})
);
попробуйте это:
const loadDataEpic = (action$, state$) =>
action$.pipe(
ofType('FETCH_DATA_SUCCESS'),
mergeMap(action => {
const isPivot = action.context === 'pivot';
return of(
{ type: 'RESET_IMAGE_DATA' },
{ type: 'INITIALISE_FILTERS' },
...(isPivot ? [{ type: 'SET_PIVOT' }] : [])
);
})
);
он добавит действие SET_PIVOT
, только если условие выполнено.
с .: Если вам не нравится синтаксис, вы можете использовать массив и выдвинуть его в зависимости от условия, а затем вернуть его с помощью of(...actions)