«dev» не является string
, это const char *
, как var1
. Таким образом, вы действительно сравниваете адреса памяти. Будучи тем, что var1
является указателем на символ, *var1
является единственным символом (для того, чтобы быть точным, первым символом указанной последовательности символов). Вы не можете сравнивать char с указателем char, поэтому это не сработало.
Поскольку это помечено как c ++, было бы разумно использовать std::string
вместо указателей на char, что будет работать так, как ожидалось. (Вам просто нужно сделать const std::string var1
вместо const char *var1
.
В 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
Во-первых, вы должны добавить 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;