Многократная навигация. Нажатие на один и тот же экран всегда переходить к последнему в списке
У меня есть экран для отображения новостных статей. В новости может быть ссылка на другие статьи. Нажав на ссылку, я перехожу на другой экран с подробными сведениями о новостях, на котором отображаются новые статьи. Если есть только одна ссылка на другую статью, она работает нормально, даже вернуться. Но если у меня есть больше ссылок, я всегда перехожу к последней новостной статье, а не к конкретной новостной статье, на которую я нажимаю. Ссылка - это «идентификатор» статьи, передаваемый через параметр navigation.push внутри файла. Почему всегда используется идентификатор последней новости? Я помещаю идентификатор (infNum) в эту область, и он ссылается на правильный идентификатор каждой статьи, но кажется, что параметр idNews всегда является последним infNum. Вот мой код:'''
{news.results.texte.map((content, index) => {
if(content.substring(0,6) === '_Info_') {
{
finNum = content.indexOf("_T_");
finLien = content.indexOf("_/Info_");
infNum = content.substring(6,finNum);
txtLien = content.substring(finNum+3,finLien)
}
//console.log(finNum," ",finLien," ",infNum," ",txtLien)
return (
<TouchableOpacity
style={styles.txtLien}
key={infNum}
onPress={() => {
navigation.push("NewsDetail", {idNews:infNum})}
}
>
<Text>{txtLien}-{infNum}</Text>
</TouchableOpacity>
)
} else {
return (
<Text style={styles.description_text} key={index}>{content}</Text>
)
}
'''
1 ответ
Я нашел проблему. Базовый Javascript. Переменная 'infNum', так как она не объявлена с ключевым словом 'var', считается глобальной и поэтому принимает последнее заданное значение. Я просто вставил 'var infNum = content.substring ....', и это работает хорошо