Здесь бы идеально подошел useReducer.
1) Можно нормально задать состояние компонента,
2) и можно номально все установить через dispatch, никаких getBack() не требуется, все будет в функции-редюсере.
PS., Извиняюсь, примеры приводить не буду, их есть в документации, да и у меня не совсем JS (а clojurescript). Но тем не менее - все тоже самое.
На почитать -
https://habr.com/ru/companies/otus/articles/752824/