Выбор ответа Junior Навигация обновлено
React Navigation: push
Вопрос
Нужно открыть карточку другого товара поверх текущей карточки товара (тот же экран Item). Что вызвать?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: navigation.push('Item', { id }): он всегда добавит новый экран в стек. push гарантированно кладёт новый экран, даже если экран с таким именем уже наверху, и «назад» вернёт к предыдущему товару. setParams меняет параметры текущего экрана, а не открывает новый. replace заменит экран и потеряет историю, goBack…
Варианты ответа
navigation.push('Item', { id }): он всегда добавит новый экран в стекправильный ответnavigation.goBack()и сразу после негоnavigate('Item', { id })navigation.replace('Home'), чтобы сбросить стек перед новой карточкойnavigation.setParams({ id }): он создаст новый экран с другими параметрами
Разбор
push гарантированно кладёт новый экран, даже если экран с таким именем уже наверху, и «назад» вернёт к предыдущему товару. setParams меняет параметры текущего экрана, а не открывает новый. replace заменит экран и потеряет историю, goBack закроет текущую карточку.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.