Как мне передать значение в state с другой страницы?

#react-native #react-navigation #react-props

#react-native #реакция-навигация #react-props

Вопрос:

Для маршрутизации я использую react-navigation.

Есть две страницы :

  1. Домашняя страница (главная страница).
  2. Домашняя страница (на главной странице только все элементы в виде списка)

Нужно сделать так:
когда я нажимаю на элемент из списка на HomePageList странице. Необходимо передать значение в состоянии на HomePage страницу.

Допустим, я нажимаю на элемент 12 на HomePageList странице. При переводе в состояние activeSlide должно быть передано 12.


Там есть массив из 6 элементов. На странице — HomePage . Ползунок с нумерацией страниц. Индекс объекта сохраняется в состоянии. В activeslide значении.

Посетите HomePageList все тот же 6 элемент.Только список и поиск.

Когда я нажимаю на любой элемент HomePageList . Происходит _GoHome .

 _GoHome = async ( ) => {
    this.props.navigation.navigate(HOMEPAGE);
  };

  

Когда я прохожу через функцию другого item.index в состоянии HomePage .

Я попытался сделать это так:
создать своего рода константу ActiveSlide в отдельном файле, который вы хотите сохранить item.index .

Затем, HomePage чтобы сделать это:

 if (ActiveSlide !== null){
      this.setState({
        activeSlide: ActiveSlide
      })
    }else{
      this.setState({
        activeSlide: 0
      })
    }

  

Но по какой-то причине не работает, говорит:

Ошибка: ActiveSlide доступен только для чтения

Ответ №1:

С помощью react navigation вы можете передавать параметры в navigate()

В представлении, которое хочет передать параметр:

this.props.navigation.navigate(HOMEPAGE, { something: value })

В представлении, которое хочет получить параметр:

value = this.props.navigation.getParam('something')

Смотрите Документы здесь