#javascript #arrays #react-native
Вопрос:
Я пытаюсь получить определенный индекс массива с такой переменной :
var test = 'category_' this.state.idCategorie // here = category_2
console.log(CategoriesCardsData[test]) // return undefined
console.log(CategoriesCardsData['category_2']) // works
Но если я попытаюсь получить его из моего теста с переменной, у меня будет неопределенное значение.
class CategoriesList extends React.Component {
constructor(props) {
super(props)
this.state = {
CardsData: CategoriesCardsData,
newDataCards: [],
idCategorie: props.navigation.state.params.idCategorie
}
}
}
_test() {
var test = 'category_' this.state.idCategorie
console.log(CategoriesCardsData[test])
}
render() {
return (
<View style={styles.main_container}>
{{this._test()}}
</View>
)
}
И данные моих карточек :
export default CategoriesCardsData = {'categorie_1': categorie_1(), 'categorie_2': categorie_2()}
function categorie_1() {
return [{
...
}]
}
same for function categorie_2, but i cant post, dont know why have an error with stackoverflow...
Компонент, откуда осуществляется навигация, я отправляю свой идентификатор категории сюда
<FlatList
...
return(
// i send my idcategorie here
<TouchableHighlight style={styles.categorie} onPress={() => this.props.navigation.navigate("Categories", {idCategorie:item.id})}>
<Text style={styles.CategoriesText}>{item.title}</Text>
</TouchableHighlight>
)
}
}
/>
Комментарии:
1. Если ваш
this.state.idCategorie
номер на самом деле является номером, то это должно сработать. Опубликуйте минимально воспроизводимую демонстрационную версию, чтобы иметь возможность помочь.2. я отредактировал свой пост с помощью своего кода для объяснения
3. Я вижу, что
idCategorie
состояние in зависит от состояния навигации. Возможно ли, чтоconsole.log
это иногда работает, а иногда нет ? Также укажите код компонента, из которого вы переходите.4. все в порядке, я отредактировал и добавил его. Для консоли я не знаю, у меня много времени на тестирование, и я не вижу проблемы. Но для моего теста var у меня тоже есть тест : тест var = ‘category_’ 2, который тоже не работает, поэтому я не думаю, что проблема в моем состоянии навигации
5. Понял. Ваш код кажется совершенно правильным. Однако подробностей недостаточно, чтобы ответить на этот вопрос. Использовать snack.expo.io чтобы создать воспроизводимую демонстрационную версию.