Как перемещаться между компонентами в разных файлах и передавать данные реагировать родным

«dev» не является string, это const char *, как var1. Таким образом, вы действительно сравниваете адреса памяти. Будучи тем, что var1 является указателем на символ, *var1 является единственным символом (для того, чтобы быть точным, первым символом указанной последовательности символов). Вы не можете сравнивать char с указателем char, поэтому это не сработало.

Поскольку это помечено как c ++, было бы разумно использовать std::string вместо указателей на char, что будет работать так, как ожидалось. (Вам просто нужно сделать const std::string var1 вместо const char *var1.

0
задан thirteen3054 18 January 2019 в 14:23
поделиться

2 ответа

В react-navigation есть параметр params, который может передаваться между экранами.

Экран отправки использует следующее для навигации:

this.props.navigation.navigate('Details', {
    itemId: 86,
    name: 'anything you want here',
    moreDetail: {name: 'can be object'},
});

Затем на другом экране используйте следующее для извлечения данных:

const { navigation } = this.props;
const itemId = navigation.getParam('itemId', 'NO-ID-DEFAULT');
const otherParam = navigation.getParam('name', 'some default value');
const details = navigation.getParam('moreDetail', {});

Также причина, по которой вы не можете даже навигация прямо сейчас объясняется тем, что у вас есть:

onPress={() => this.props.navigation.navigate('Dashboard')}

в то время как это должно быть:

onPress={() => this.props.navigation.navigate('dashboard')}

Поскольку вы определили как строчные в App.js

для навигации: https://reactnavigation.org/docs/en/navigating.html

Справочная информация о том, как передавать параметры: https://reactnavigation.org/docs/ о / params.html

0
ответ дан Sean Wang 18 January 2019 в 14:23
поделиться

Во-первых, вы должны добавить onPress() в ListItem, чтобы вы могли нажать на имя и передать значение.

list.map((l, i) => (
  <ListItem 
    key={i}
    title={l.name}
    onPress={()=>this._navigateToDashboard(l.name)}
  />
))

При нажатии на имя запускается функция _navigateToDashboard(), а значение l.name будет передаваться. Следующий код показывает, как вы получите значение в функции.

_navigateToDashboard(name){
    // navigate the dashboard screen and pass the value 
    this.props.navigation.navigate('dashboard', { any_variable_name:name })
}

С вашей приборной панели вы можете получить переданные данные следующим образом:

var name = this.props.navigation.state.params.any_variable_name;
0
ответ дан Emerald 18 January 2019 в 14:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: