2017-05-26 65 views
2

我真的很困惑,因爲我不明白如何將一個數組傳遞給SectionList。當我嘗試這一個一切正常如何將數據傳遞給SectionList?

<SectionList 
         renderItem={({item}) => <View><Text> title={item.title}</Text></View>} 
         renderSectionHeader={({section}) => <View><Text> title={section.key}</Text></View>} 
         sections={[ 
           {data: [{title:123},{title:"aaa"}], key: "aaa"}, 
           data: [{title:333},{title:"bbbb"}], key: "bbb"}, 
           {data: [{title:123},{title:"aaa"}], key: "ccc"}, 
          ]} 
        /> 

但是,如果我嘗試使用的功能(我的理解是完全以相同的),我得到一個錯誤「props.sections.reduce不是一個函數」。如何將具有函數的數組傳遞給SectionList?謝謝

sections={()=>[ 
            {data: [{title:123},{title:"aaa"}], key: "aaa"}, 
           data: [{title:333},{title:"bbbb"}], key: "bbb"}, 
           {data: [{title:123},{title:"aaa"}], key: "ccc"}, 
           ]} 
         /> 

回答

4

部分道具需要一個數組而不是函數。爲了在道具部分使用一個函數,這個函數必須返回一個數組。該數組包含一個字符串鍵和一個數據對象。您可以使用許多參數在這個對象,爲必填信息,您可以諮詢this page

爲例:

export default class Exemple extends React.Component { 

    selectionList =() => { 
    return([ 
     {data: [{title:123},{title:"aaa"}], key: "aaa"}, 
     {data: [{title:333},{title:"bbbb"}], key: "bbb"}, 
     {data: [{title:123},{title:"aaa"}], key: "ccc"}, 
    ]) 
    } 

    render() { 
    return (
     <View> 
     <SectionList 
      renderItem={({item}) => <View><Text> title={item.title}</Text></View>} 
      renderSectionHeader={({section}) => <View><Text> title={section.key}</Text></View>} 
      sections={this.selectionList()} 
     /> 
     </View> 
    ) 
    } 
} 
+0

謝謝,但是這一個()=> [1,23,4] - 我所知,會也返回一個數組,但它不起作用。 – SERG

+1

我已經更新了必須信息的回覆 –