Думаю, вопрос должен быть более подробным, чтобы помочь решить вашу проблему. Основываясь на ваших вопросах, вы можете спросить:
- Как перезагрузить страницу при изменении данных
- Как перезагрузить страницу при изменении состояния навигации
Как перезагрузить страницу при изменении данных
В этом случае вам не нужно добавлять componentWillRecieveProps. Вы можете просто проверить значение в методе рендеринга, например
{data.items.length && <ItemLIstCustomComponent />}
или
{data.items.length ? <ItemLIstCustomComponent /> : <EmptyMessageComponent />}
. Вы можете посмотреть условный рендеринг в react-native. Если повторный рендеринг все еще не происходит? Тогда ваш способ обновления состояния / данных неверен. Убедитесь, что вы сделали копию объекта и обновили существующий.
Чтобы понять это, прочтите об изменяемых объектах и отреагируйте на поверхностную проверку на повторный рендеринг. Или может быть это поможет
Как перезагрузить страницу при изменении состояния навигации
Я не думаю, что это хорошая практика вызывать другой API или делать какие-либо изменения состояния связанная вещь в componentWillRecieveProps
. Вы можете создать новый экран, на котором вы будете перемещаться и вызывать API в componentDidMount
. Вы можете попробовать React navigation , если вы не используете какую-либо библиотеку навигации.