【问题标题】:Flat List - index manipulating平面列表 - 索引操作
【发布时间】:2018-10-23 17:19:20
【问题描述】:

我想操作 flatlist 索引。我想将平面列表索引转换为 messageID

我的主要要求,我想更改平面列表项数据

我有这样的json数组;

 this.state.messages = [
      {
        "date": "09:55",
        "longDate": "22/10/2018",
        "message": "ghjghj",
        "messageID": 157,
        "senderID": 1,
        "showLongDate": 0,
        "type": "text",
        "uri": ""
      },
      {
        "date": "09:56",
        "longDate": "22/10/2018",
        "message": "rtyrtyrt",
        "messageID": 158,
        "senderID": 1,
        "showLongDate": 0,
        "type": "text",
        "uri": ""
      }
    ]

我的平面清单;

 <FlatList
  ref={(list) => this.myFlatList = list}           
  data={this.state.messages}
  renderItem={({item, index})=>(
    <View><Text>{item.message}</Text></View> 
  )}
  removeClippedSubviews={true} 
  refreshing={this.state.refreshing} 
  keyExtractor={(item, index) => item.messageID.toString()} 
  onRefresh={this.handleRefresh}  
  extraData={this.state}   
/>

【问题讨论】:

  • 您能否提供更多关于您想要实现的目标的见解?
  • 我们可以看看你的 FlatList 组件实现吗
  • 我正在 react-native 上制作聊天应用程序。当我在 socket.io 上接收新消息时,我总是添加数组头。所以我的数组和平面列表索引总是在变化并从 0 开始。我想更改没有索引的平面列表项,或者我想使用 messageID 创建索引
  • 为什么不把这个 item.message.toString() 改成这个 item.messageID.toString() 呢?

标签: reactjs react-native


【解决方案1】:
<FlatList
  ref={(list) => this.myFlatList = list}           
  data={list}
  renderItem={({item, index})=>(
    <View /><Text>{item.message}</Text></View> 
  )}
  removeClippedSubviews={true} 
  refreshing={this.state.refreshing} 
  keyExtractor={(item, index) => item.message.toString()} 
  onRefresh={this.handleRefresh}  
  extraData={this.state}   
/>

【讨论】:

  • 这不是我想要的
  • 您应该为问题提供足够的上下文。最初我认为 this.state.messages 不是一个列表。现在我看到它是一个列表
  • 去掉第一个关闭的,换成
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多