Я разрабатываю приложение React Native и использую стекнавигатор react navigation, и вот мой сценарий:

  • У меня есть компонент A в виде стекнавигатора, который содержит экран B (и другие).
  • При нажатии на кнопку в A происходит переход к B
  • При нажатии на кнопку в B перейдите к B (на этот раз с новыми данными)
  • Нажав на кнопку по умолчанию "Назад" во втором B, перейдите к A. И это моя проблема, поскольку я хочу вернуться к первому B. Проверьте конфигурацию моего stacknavigator и поправьте меня, если я пропустил дополнительную конфигурацию, спасибо.

    
    
....

В пределах В:

const {navigation} = this.props;
navigation.navigate('B', {новые данные для второго B});

EDIT: Забыл упомянуть, что первый B вызывает второй B из веб-просмотра

.

Mostav

Ответы (1)

На мой взгляд, для повторного рендеринга вам следует иметь дело с состоянием ваших компонентов. В любом случае, если вам нужно просто переходить на одну и ту же страницу и сохранять возврат назад, вы можете заменить :

navigation.navigate('B', { ... })

за счет :

navigation.push('B', { ... })

Когда вы используете push, вы создаете новый маршрут, поэтому, когда вы будете возвращаться по этому новому маршруту, он перейдет к предыдущему. navigate попытается перейти к существующему маршруту, так что в вашем случае: маршрут B уже фактически существует.

2022 WebDevInsider