Реагирующие реквизиты навигации не обновляются при возврате в стек - PullRequest
0 голосов
/ 13 февраля 2019

Таким образом, проблема, с которой я сталкиваюсь в реагирующей навигации, заключается в том, что реквизиты, которые передаются дочернему элементу, не изменятся, если я вернусь.

https://github.com/CMarshall92/PostMate-Rest-App

например, если я щелкну по одному из элементов в ScrollView, он перейдет к компоненту CollectionOverview с правильным идентификатором, необходимым для извлечения информации на основе этой коллекции.если бы я должен был вернуться к исходному виду и щелкнуть по другому элементу в представлении прокрутки, он снова перейдет к компоненту CollectionOverview, но идентификатор из первого переходного перехода будет присутствовать в том, что является неправильным.Я делаю что-то не так, если ссылки на контент, объясняющие это, были бы хороши, так как я до сих пор не смог найти Google

С нетерпением ждем от людей, поговорим в ближайшее время.

HomeScreen:

<ScrollView style={styles.containerList}>
{
    ...
    onPress={() => {
        navigation.navigate('CollectionOverView', {
        collectionId: l.id
    })
    ...
}
</ScrollView>

CollectionOverView:

this.state = {
    ...
    collectionId: navigation.getParam('collectionId', ''),
    ...
}

Перейдите к первому набору, затем сможете вернуться и перейти ко второму элементу с правильными реквизитами навигациипередается компоненту.

1 Ответ

0 голосов
/ 14 февраля 2019

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

navigation.navigate({
    routeName: `CollectionOverView${i}`,
    params: { collectionId: l.id }
})

Затем в stackNavigator добавьте два маршрута, т. Е.

CollectionOverView0: {
    screen: CollectionOverView
},
CollectionOverView1: {
    screen: CollectionOverView
},

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

navigation.navigate({
    key: uuidv4(),
    routeName: `CollectionOverView${i}`,
    params: { collectionId: l.id }
})

CollectionOverView: {
    screen: CollectionOverView
},

, но по какой-то причине это не работает, я не уверен, что я делаю неправильно.какие-нибудь советы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...