Size: a a a

React — русскоговорящее сообщество

2021 May 31

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
Всем привет, использую React-Router, есть проблема, когда меняются пути, но state остается тот же, как мне сбрасывать state при изменение Router пути? Знаю, что компонент не меняется, а меняется реквизит
источник

a

amrl in React — русскоговорящее сообщество
реквизит?
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
Но проблема вся в том, что я получают данные state из хука, а как мне сбрасывать это состояние при изменении параметров url - не понимаю
источник

a

aleksej in React — русскоговорящее сообщество
в новом апдейте добавили
источник

a

amrl in React — русскоговорящее сообщество
апдейте роутера? даже нагуглить не могу
источник

a

aleksej in React — русскоговорящее сообщество
да я рофлю)))
источник

a

amrl in React — русскоговорящее сообщество
пххп
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
Он же использует обертку, при изменении роутера просто передается параметры запроса URL как props компоненту
источник

C

Cool29 in React — русскоговорящее сообщество
Гмм... если стэйт это стэйт редакса, то так и задумано)))

Как вариант использовать useEffect для вызова dispatch(clearState), где clearState созданный вами экшн, в которым вы устанавливаете значения стэйта в дефолтные.
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
Не, state React
источник

a

amrl in React — русскоговорящее сообщество
так причем тут роутер? если тебе нужно при каждом изменении урла чистить стейт то подпишись на его изменения и там очищай
источник

a

amrl in React — русскоговорящее сообщество
если пути обычные то
popstate
источник

C

Cool29 in React — русскоговорящее сообщество
Гмм... типа стэйт находиться например в app.js, внутри которого роутер?
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
Структура из первого примера
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
Примерно такая же
источник

C

Cool29 in React — русскоговорящее сообщество
Ну тут тока кастыли прикручивать при такой структуре.

Например на каждый Link цеплять onCLick c обработчиком который будет ваш стэйт сбрасывать на дефолт.

Работать будет, но это плохо архитектурно.
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
<Switch>
         <Route path="/about">
           <About />
         </Route>
         <Route path="/users">
           <Users />
         </Route>
         <Route path="/">
           <Home />
         </Route>
       </Switch>
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
Вот примерно такая архитектура, без Link
источник

ВД

Вячеслав Додонов... in React — русскоговорящее сообщество
Стандартный паттерн для роутера
источник