React Native渲染JSON数据无法访问company字段,求排查问题
问题分析与解决方案
我帮你瞅了下代码,问题其实出在FlatList渲染时的字段取值方式上,咱们一步步理清楚:
数据结构确认:你拿到的JSON是一个数组,里面包含单个对象,所以你的
data状态是数组类型,数组里的每个元素才是包含company字段的对象。错误点定位:在FlatList的
renderItem里,你写了title={data.company}——但data是整个数组,数组本身并没有company属性!你应该用renderItem参数里的item,它代表数组中的每一个单独对象,正确的取值应该是item.company。修正后的渲染代码:
<FlatList keyExtractor={(item, i) => i.toString()} data={data} renderItem={({ item, i }) => ( <Card title={item.company} // 这里把data.company改成item.company onPress={() => navigation.navigate("Porosia")} /> )} />
另外给个小建议:keyExtractor最好用数据里的唯一标识(比如item._id)而不是索引,这样在数组元素变动时性能更好,比如改成:
keyExtractor={(item) => item._id}
内容的提问来源于stack exchange,提问作者Emily
相关产品推荐
相关产品推荐

