Как динамически отображать кнопки навигации в зависимости от того, какие экраны были посещены / смонтированы - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть экран исследования, отображающий список из 3 карт, каждая из которых перемещается в разные категории. Когда вы перемещаетесь назад и вперед по стопке «Исследовать», я пытаюсь найти способ повернуть порядок отображения карт на экране «Исследование» в зависимости от того, какие категории в стопке были посещены.

Я пытался найти способ ссылки на экран с помощью заданного имени маршрута this.props.navigation.state.routeName, но как бы я условно ссылался на эти маршруты на экране исследования, если экран исследования монтируется только один раз в течение жизненного цикла навигации?

/** 
 *   ExploreScreen.js (JSX)
 *   @todo rotate SingleActionCards based on if they've been visited. 
 *         If visited, card moves to bottom
 */
<Card>
  <View>
    <Button
      text={isFinishedQuiz ? 'QUIZ RESULTS' : 'TAKE THE QUIZ'}
      onPress={() =>
        navigation.navigate(appState.quiz.finished ? 'QuizResults' : 'QuizStart')
      }
    />
  </View>
</Card>

<SingleActionCard
  text="Explore Careers"
  onPress={() => navigation.navigate('Careers', { name: 'User' })}
/>
<SingleActionCard
  text="Explore Colleges"
  onPress={() => navigation.navigate('Colleges', { name: 'User' })}
/>
<SingleActionCard
  text="Explore Degrees and Programs"
  onPress={() => navigation.navigate('CollegeProgramCategories', { name: 'User' })}
/>
...