виден на экране, useState сохраняется. А как только компоент исчезает (например, перешел на другой роут или условный рендеринг ), то useState обнуляется?
локальный стейт сохраняется, пока компонент примаунчен. если перешёл на другой роут, а компонент остался на месте, то состояние сохранится но в целом самые частые случаи ты описал правильно
Это может не произойти, если сохранилась ссылка на компонент(или его переменную) и он не может быть удалён
У меня в корневом компоненте switch по строковой переменной view. И в зависимости от ее значения, возвращается тот или иной компонент. Не может ведь в таком случае сохраниться ссылка на компонент по идее?
Что означает «по строковой переменной view»?
Ну вместо роутера переменная view, которая лежит в стейте (эффектора) и по событию goTo(view) переключается
Я не понимаю вопрос. В этой переменной лежит обычный компонент что ли?
Не. В переменной лежит строка. В компоненте App лежит switch(view) { case 'list': return <List />; case 'editor': return <Editor />; } Когда List переключается на Editor, могу я быть уверен, что стейты, определенные в них обнулятся?
Стейты определённые в них обнулятся всегда, потому что произойдёт unmount (в реакт доке об этом написано подробнее).
Обсуждают сегодня