You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React Native的FlatList每个列表项中展示Title和Serial两个标签

问题根因

  • renderItem方法调用Item组件时仅传入了title字段,未传入Serial字段,导致组件无法获取副标题数据
  • 两个展示文本共用同一套样式,无法区分主副标题的视觉层级

修复代码

import { StyleSheet, View, Text, TouchableOpacity, FlatList } from 'react-native';

// 数据源保持不变
const DATA = [
  {
    id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
    title: 'First Item',
    Serial: '1254'
  },
  {
    id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
    title: 'Second Items',
    Serial: '5678'
  },
  {
    id: '58694a0f-3da1-471f-bd96-145571e29d72',
    title: 'Third Item',
    Serial: 'XXoX'
  },
];

// Item组件调整文本样式,区分主副标题
const Item = ({ title, Serial }) => (
  <TouchableOpacity style={styles.ttListButton}>
    <View style={styles.TTitem}>
      {/* 主标题用加粗、更大字号的样式 */}
      <Text style={styles.title}>{title}</Text>
      {/* 副标题用更小字号、浅灰色的样式,和主标题区分 */}
      <Text style={styles.subTitle}>{Serial}</Text>
    </View>
  </TouchableOpacity>
);

export default function App() {
  const renderItem = ({ item }) => (
    // 新增Serial字段传递
    <Item title={item.title} Serial={item.Serial} />
  );
  return(
    <View style={{backgroundColor: '#fff', flex:1}}>
      <FlatList
        data={DATA}
        renderItem={renderItem}
        keyExtractor={item => item.id}
      />
    </View>
  )
}

// 补充样式参考,可根据需求调整参数
const styles = StyleSheet.create({
  TTitem: {
    paddingVertical: 12,
    paddingHorizontal: 16,
  },
  title: {
    fontSize: 16,
    fontWeight: '500',
    color: '#000',
    marginBottom: 4
  },
  subTitle: {
    fontSize: 14,
    color: '#666'
  },
  ttListButton: {
    backgroundColor: '#fff'
  }
})

内容的提问来源于stack exchange,提问作者Ryan Fonseka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:06:00