2017-06-21 21 views
0

enter image description here爲什麼ListView無法在更改值後顯示當前處於反應狀態?

這是我用來判斷代碼

<TouchableOpacity 
    style={styles.listItem}> 
    { 
      (rowData.name == 'Abigale') ? 
       <View style={styles.self}> 
       <Text> 
        {rowData.msg}:{rowData.name} 
       </Text> 
       </View> : 
       <View style={styles.friend}> 
       <Text> 
        {rowData.name}:{rowData.msg} 
       </Text> 
       </View> 
     } 
    </TouchableOpacity> 

這是我用來改變代碼列表的位置

this.setState({ dataSource: this.state.dataSource.cloneWithRows(window.abigale.msgList) }) 

爲什麼亂序當我改變列表視圖?

,但如果我更改代碼,因爲這:

<TouchableOpacity style={styles.listItem}>      
      <Text>{rowData.msg}:{rowData.name}</Text> 
     </TouchableOpacity> 

的順序是正確的

回答

0

什麼你現在正在做的是用新的更換您的舊數據源。相反,您需要將您以前的數據源追加到新數據源。所以像這樣:

this.setState({ 
    dataSource: this.state.dataSource 
    .cloneWithRows([...this.state.dataSource, ...window.abigale.msgList]) 
}) 
相關問題