Реакция перекомпоновки, обновление componentFromStream не вызывает - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть Rx Observable из interval и еще одна наблюдаемая из реактора prop, я объединился с withLatestFrom обеми Наблюдаемыми для прослушивания обновления и рендеринга компонента потока с recompose, он работает нормально, но проблема в том, что он не обновляетсякогда я меняю опору на local на utc.

Вы можете попробовать увеличить интервал и изменить кнопку LOCAL / UTC, она не срабатывает, но обновляется только при изменении времени.

рабочая демонстрация с кодом

const locale$ = prop$.pipe(p => p)
  const timeInterval$ = prop$.pipe(
    switchMap(({intervalTime}) => interval(intervalTime)),
    withLatestFrom(locale$, (b, c) => {
    return c.locale === 'local' ? moment().format('HH:mm:ss') : moment().utc().format('HH:mm:ss')
  })//.pipe(map(p => p))
  )

1 Ответ

0 голосов
/ 30 сентября 2018

То, что вы ищете, это объединитьПоследний (не сПоследнийFrom ).

сПоследнийFrom

Объединяет источник с другим наблюдаемым (или более!) В наблюдаемые излучающие массивы с последними значениями каждого, только тогда, когда источник излучает .

ОбъединитьПоследние

Объединяетнесколько наблюдаемых в наблюдаемую, которая генерирует массив с последними значениями каждого источника, каждый раз, когда одна из этих наблюдаемых создает .

Это пример дляlateLatest:

const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now
const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now
const combinedTimers = combineLatest(firstTimer, secondTimer);
combinedTimers.subscribe(value => console.log(value));
// Logs
// [0, 0] after 0.5s
// [1, 0] after 1s
// [1, 1] after 1.5s
// [2, 1] after 2s
...