После вставки новых данных, как перезагрузить страницу в react-native, и я использую mobx для управления состоянием - PullRequest
0 голосов
/ 08 мая 2020

Я использую такой код, он у меня не работает

componentWillRecieveProps(nextProps,nextState){
  if(nextProps.navigation.state != this.state){
    //here calling api
   }
}

1 Ответ

2 голосов
/ 08 мая 2020

Думаю, вопрос должен быть более подробным, чтобы помочь решить вашу проблему. Основываясь на ваших вопросах, вы можете спросить:

  1. Как перезагрузить страницу при изменении данных
  2. Как перезагрузить страницу при изменении состояния навигации

Как перезагрузить страницу при изменении данных

В этом случае вам не нужно добавлять componentWillRecieveProps. Вы можете просто проверить значение в методе рендеринга, например

{data.items.length && <ItemLIstCustomComponent />}

или

{data.items.length ? <ItemLIstCustomComponent /> : <EmptyMessageComponent />}

. Вы можете посмотреть условный рендеринг в react-native. Если повторный рендеринг все еще не происходит? Тогда ваш способ обновления состояния / данных неверен. Убедитесь, что вы сделали копию объекта и обновили существующий.

Чтобы понять это, прочтите об изменяемых объектах и ​​отреагируйте на поверхностную проверку на повторный рендеринг. Или может быть это поможет

Как перезагрузить страницу при изменении состояния навигации

Я не думаю, что это хорошая практика вызывать другой API или делать какие-либо изменения состояния связанная вещь в componentWillRecieveProps. Вы можете создать новый экран, на котором вы будете перемещаться и вызывать API в componentDidMount. Вы можете попробовать React navigation , если вы не используете какую-либо библиотеку навигации.

...