2017-04-13 5 views
8

में कनवर्ट करना मैं वर्तमान में एंड्रॉइड के लिए एक प्रतिक्रिया मूल ऐप पर काम कर रहा हूं, और नई FlatList तक पहुंच प्राप्त कर रहा हूं। इसमें कुछ बहुत जरूरी विशेषताएं हैं। हालांकि, मेरी सूचीदृश्य प्रतिक्रिया-मूल-उलटा-स्क्रॉल-व्यू का उपयोग करके उलटा हुआ है। यह FlatList के साथ ठीक से काम नहीं कर रहा प्रतीत होता है। स्क्रॉलिंग ठीक से उलट नहीं है।एक FlatList

क्या कोई जानता है कि फ़्लैटलिस्ट को कैसे बदला जाए? या शायद फ़्लैटलिस्ट कैसे लोड करें, और उसके बाद उपयोगकर्ता को ध्यान दिए बिना नीचे स्क्रॉल को मजबूर करें? स्क्रॉल डाउन को मजबूर करने के अपने प्रयासों में अक्सर देरी होती है।

उत्तर

12
render() { 
const messages = this.props.messages.reverse(); 

return (
    <FlatList 
    renderItem={this._renderItem} 
    data={ messages } 
    keyExtractor={this._keyExtractor} 
    style={{ transform: [{ scaleY: -1 }] }} 
    /> 
); } 

_keyExtractor = (item, index) => item.id+''+index; 

_renderItem = ({item}) => (
<View style={{ transform: [{ scaleY: -1 }]}}> 
    <ChatItem /> 
</View>) 

यह)

+0

काम किया! धन्यवाद Богдан :-) – Francesco

+0

यह एक आकर्षण की तरह काम किया। – Lorenz

+0

मैं सोच रहा था कि क्या एंड्रॉइड कार्यक्षमता के साथ इस पर आपकी कोई टिप्पणी है? हम इसे अपने उत्पादन चैट में उपयोग कर रहे हैं और सूची हूवाई ऑनर 8 फोन पर काम नहीं कर रही है, लेकिन अधिकांश अन्य यह ठीक है। –

-3

का आनंद लें अन्य उत्तर में वर्णित है, ऐसा करने के बारे में जाने के लिए वर्तमान में सबसे अच्छा तरीका है FlatList के युक्त राय यह है कि यह उलट करने के लिए एक परिवर्तन लागू करने के लिए है के रूप में।

return (
    <View style={{ transform: [{ scaleY: -1 }] }} > 
     <FlatList 
      renderItem={this._renderItem} 
      ... 
     /> 
    </View> 
); 

फिर प्रत्येक सूची आइटम में एक ही परिवर्तन लागू करें ताकि यह सुनिश्चित किया जा सके कि वे सही ढंग से पुनर्निर्मित हैं।

_renderItem = (info) => { 
    return (
     <View style={{ transform: [{ scaleY: -1 }] }}> 
      {this.props.renderItem(info)} 
     </View> 
    ); 
} 

मुझे लगता है कि है कि वास्तव में करता है एक पैकेज में लिखा है, तुम सब करने की जरूरत है एक मानक FlatList घटक के स्थान पर इस का उपयोग करें और inverted संपत्ति पार जाते हैं।

https://www.npmjs.com/package/react-native-invertible-flat-list

+0

सामग्री के साथ-साथ पुल-टू-रीफ्रेश को कैसे घुमाने के बारे में कोई विचार है? एक चैट एप्लिकेशन में आपको शीर्ष पर पहले के संदेशों को लोड करने की आवश्यकता है। इस समाधान के साथ, FlatList's onRefresh नीचे रीफ्रेश कंट्रोल जोड़ देगा। – mitelone

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/16424795) –

+0

@मिटेलोन क्या आप इस बारे में सकारात्मक हैं? मैं इसे अपने स्वयं के आवेदन में उपयोग कर रहा हूं, पूरी तरह से परीक्षण नहीं किया है लेकिन संक्षिप्त निरीक्षण पर ऐसा लगता है कि रीफ्रेश कंट्रोल शीर्ष पर है। यदि वास्तव में यह मामला है कि इसे नीचे में जोड़ा जाता है तो मेरे पास इसे फ़्लिप करने के बारे में कोई अच्छा विचार नहीं है। कुछ परीक्षण के बाद मैं इसके बारे में सोचूंगा। – nickcharles

20

यह अब FlatList में बॉक्स से बाहर आता है!

बस का उपयोग करें:

<FlatList 
    inverted 
    data=... 
    renderItem=... 
/> 

इस सूची में सबसे नीचे प्रकट करने के लिए पहला आइटम का कारण बनता है, और सूची, तल पर शुरू होता है पहला आइटम दिखा।

यदि आपको नीचे दिखाए गए अंतिम आइटम की आवश्यकता है, तो आप data प्रोप में प्रदान कर रहे सरणी को उलट दें।

+1

यह स्वीकार्य उत्तर – Khriz

+0

बहुत धन्यवाद होना चाहिए, मैं आपके सुझाव के साथ अपनी क्षैतिज सूची को आरटीएल कर सकता हूं। धन्यवाद –

संबंधित मुद्दे