В Wix React Native Navigation V2 Как передавать данные с одного экрана на другой

Я использую Wix react native navigation V2 в нашем приложении react Native. У меня проблема с передачей данных с одного экрана на другой. Первый экран содержит FLATLIST, когда я выбираю Row of FLATLIST, тогда мне нужно перемещаться и передавать данные строки на другом экране.

Вот мой код:

Экран 1:

Этот код показывает данные строки в FLATLIST (работает нормально)

_renderItem = ({ item }) => {
    const text = `${item}`;
    return (
      <TouchableOpacity onPress={() => this.moveToAnotherScreen(item)}>
        <View style={styles.cardView}>
          <Text style={styles.item2}>{item.name}</Text>
          <Text style={styles.item2}>{item.Type}</Text>
          <Text style={styles.item2}>{item.mobile}</Text>

        </View>
      </TouchableOpacity>
    );
  };

Это функция moveToAnotherScreen.

moveToAnotherScreen(item) {
    Navigation.push(this.props.componentId, {
      component: {
        name: 'ShowAnotherScreen',

      },
      passProps: {
        data: item
    }
    });
  }

Экран 2:

componentDidMount() {

    const params  = this.props.data
    console.log('params', params);
  }

person Anup Gupta    schedule 18.12.2018    source источник
comment
С какой проблемой вы столкнулись? Разве вы не можете войти на экран 2?   -  person Bluewings    schedule 18.12.2018
comment
я могу переместить экран 2, но я не получаю на нем данные.   -  person Anup Gupta    schedule 18.12.2018
comment
'params', undefined это ответ   -  person Anup Gupta    schedule 18.12.2018
comment
Мне все хорошо. Наверное, проверьте, что в конструкторе типа constructor(props){ super(props) const params = this.props.data console.log('params', params); }   -  person Bluewings    schedule 18.12.2018
comment
@Bluewings не работает :(   -  person Anup Gupta    schedule 18.12.2018
comment
попробуйте this.props.data.item   -  person shubham    schedule 18.12.2018
comment
@shubham, это ошибка: необработанное исключение JS: TypeError: undefined не является объектом (оценка this.props.data.item)   -  person Anup Gupta    schedule 18.12.2018


Ответы (2)


Ваш синтаксис для передачи реквизита неверен. Попробуйте ниже

Navigation.push(this.props.componentId, {
      component: {
        name: "ShowAnotherScreen",
        passProps: {
         data: item
        }
      }
    })

Passprops должен быть внутри component

person Bluewings    schedule 18.12.2018
comment
Я тоже пробовал это, но на экране 2 я делал что-то еще. - person Anup Gupta; 18.12.2018
comment
Есть ли способ передавать данные для навигации на основе вкладок, когда не нужны нажатия? - person Hector Ricardo; 12.01.2019

moveToAnotherScreen(item) {
  Navigation.push(this.props.componentId, {
    component: {
      name: 'ShowAnotherScreen',
      passProps: {
        data: item
      }
    }
  });
}

в ShowAnotherScreen

componentDidMount() {
  console.log(JSON.stringify(this.props.item))}
person Damith Amarasinghe    schedule 17.11.2019