多个 navigation.push 同屏总是转到列表的最后

问题描述

我有一个屏幕来显示新闻文章。在新闻中可以参考其他文章。单击参考资料后,我会转到显示文章的另一个新闻详细信息屏幕。 如果只有一个参考另一篇文章,它工作正常,甚至回去。 但如果我有更多参考资料,我总是会转到最后一篇新闻文章,而不是我点击的特定新闻文章。引用是文章的“id”,通过一个 navigation.push 的参数传递,在一个 . 为什么总是使用最后一个新闻 ID?我把id(infNum)放在了区域,它引用了每篇文章的正确id,但似乎参数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>
            )
        }

'''

解决方法

我发现了问题。基本的Javascript。变量 'infNum' 因为它没有用 'var' 关键字声明,所以被认为是全局的,因此采用给定的最后一个值。我只是放了 'var infNum = content.substring ....' 并且效果很好

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...