Как включить условные и безусловные вызовы в таблицу слияний RxJS?

В то время как другие ответы велики и отвечают на вопрос, есть одна вещь, которую следует учитывать при использовании input type="submit" и button. С помощью input type="submit" вы не можете использовать псевдо-элемент CSS на входе, но вы можете для кнопки!

Это одна из причин использования элемента button над входом, когда дело касается стилизации.

1
задан theseboys 17 January 2019 в 17:55
поделиться

2 ответа

Вы можете изменить 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'
                }
            ]);
        })
    );
0
ответ дан Meligy 17 January 2019 в 17:55
поделиться

попробуйте это:

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)

0
ответ дан jcal 17 January 2019 в 17:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: