Все просто. Добавить стейт в SelectNavigation и хранить там флаг нужного вида:
state: {
view: 'pc'; //pc | tablet | 'mobile'
}
Далее при ресайзе нужно обновлять этот флаг в стейте в зависимости от ширины экрана.
А в рендер функции выводить getNavigationTablet, getNavigationMobile или getNavigationPC в зависимости от this.state.view.
Для того чтобы компонент перерисовался, вам нужно, чтобы у него обновился prop или state. В данном случае, если при ресайзе вы будите обновлять стейт, то компонент будет перерисовываться при изменении стейта.
PS. По скольку у вас функциональный компонент, то можно использовать хук "useState".
PS2. У вас ошибка в граничных условиях. Не правильное условие при width = 700. В вашем случае будет PC? а должно быть tablet или mobile.