Что такое хорошая практика для передачи данных из компонента заголовка - PullRequest
0 голосов
/ 16 апреля 2020

Внутри моего stackNavigator Я создал собственный компонент с именем SearchBarHeader , который находится внутри заголовка

Внутри компонента SearchBarHeader есть состояние , которое что пользователь ищет

Мне нужно это состояние, чтобы обновить мой FlatList компонент внутри моего Поиск component

Мой вопрос: что я должен go для приведения? Передает данные через Navigation? Что-то еще?

const SearchStack = createStackNavigator(
  {
    Search: {
      screen: Search,
      navigationOptions: ({ navigation }) => ({
        headerTitle: <SearchBarHeader navigation={navigation} />
      })
    },
  },
  {
    initialRouteName: "Search"
  }
);

Ответы [ 2 ]

2 голосов
/ 16 апреля 2020

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

0 голосов
/ 16 апреля 2020

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

Но в родительской дочерней передаче данных вы можете просто использовать реквизиты.

в родительском,

this.props.navigation.navigate('ChildComponent', {my_data: 'this is the sample data string'})

в дочернем,

this.props.navigation.state.params.my_data

Это самый простой способ.

Кроме того, вы можете использовать React context API, который очень прост в освоении и реализации. Вы можете обратиться к документации здесь. https://reactjs.org/docs/context.html

...