Я понял, в чем проблема. Поскольку на обеих страницах использовался один и тот же блок blo c, они перестраивали бы в обоих состояниях, в то время как домашняя страница должна была перестраивать только на AllUsersLoadedState, а страницу сведений перестраивать только на UserLoadedState.
Поэтому, когда я перехожу на страницу сведений, и UserLoadedState получен, домашняя страница не знает, как обрабатывать состояние, и может создать sh.
. Решение состоит в том, чтобы использовать параметр условия в конструкторе blo c для пропустить восстановление в нежелательном состоянии.