Почему наблюдатель LiveData запускается дважды для вновь присоединенного наблюдателя

Эта функция делает то, что вы хотите:

function flattenArray($arr) {
    $output = [];

    foreach ($arr as $key => $value) {
        if (is_array($value)) {
            foreach(flattenArray($value) as $flattenKey => $flattenValue) {
                $output["${key}.${flattenKey}"] = $flattenValue;
            }
        } else {
            $output[$key] = $value;
        }
    }

    return $output;
}

Вы можете увидеть, что она работает здесь .

30
задан Sagar 18 May 2018 в 03:09
поделиться

1 ответ

Причина состоит в том, что в Вашем .observe () метод, Вы передали фрагмент как владелец жизненного цикла. То, что должно было быть передано, является viewLifecycleOwner объектом фрагмента

viewModel.livedata.observe(viewLifecycleOwner, Observer {
        // Do your routine here
    })
3
ответ дан 27 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

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