반응형
SectionList는 아래와 같이 필수 속성을 이용해야 한다.
-sections
-renderSectionHeader
-renderItem
-keyExtractor (필수는 아니지만 키값이 없을 경우 경고창이 나온다. 그것을 해결하기 위해 사용)
<최종화면> - ListView를 이용해서 데이터를 보여준다.
AVD를 실행시키고 , cmd창에서 작업할 경로까지 접근하여 initd을 하자.
RN10SectionList폴더에 새 파일(Main.js)을 만들자.
임의로 대량의 데이터를 만들고, SectionList를 사용해보자.
해당 리스트를 클릭했을때, 해당 이름이 알림창에 나오도록 하자.
<복붙용 코드>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
import React, {Component} from 'react';
import {View, Text, StyleSheet, SectionList, TouchableOpacity, Alert} from 'react-native';
export default class Main extends Component{
constructor(){
super();
// 대량의 데이터
sectionDatas:[
// SectionList의 섹션 하나 객체에는 title, data 2개의 프로퍼티 필요
{title:'한식',data:["백반","고기산적","비빔밥"]},
{title:'중식',data:["짜장면","짬뽕","탕수육"]},
{title:'일식',data:["초밥","회","덮밥"]},
],
};
}
render(){
return(
<View style={style.root}>
{/* 리스트에 그룹칭이 가능하 리스트뷰 */}
{/* 3개의 필수 속성 */}
{/* 1) section - 섹션 title과 섹션별 data들을 가진 대량의 데이터*/}
{/* 2) renderSectionHeader - 섹션별 title영역에 그려질 컴포넌트를 리턴하는 콜백함수 지정 */}
{/* 3) renderItem - 섹션별 Item영역에 그려질 컴포넌트를 리턴하는 콜백함수 지정 */}
<SectionList
sections={this.state.sectionDatas}
renderSectionHeader={ ({section})=>{
return (
<View style={style.sectionHeader}>
</View>
);
}}
renderItem={ ({item,index,section})=>{
return(
<TouchableOpacity style={style.itemView} onPress={()=>{this.clickItem(item)}} >
<Text style={style.itemView}>{item}</Text>
</TouchableOpacity>
);
}}
// keyExtractor={(item,index)=>{return index}}
keyExtractor={(item,index)=> index}
>
</SectionList>
</View>
);
}//render method..
clickItem=(item)=>{
}
}
root:{flex:1, padding:16},
sectionHeader:{
padding:4,
backgroundColor:"#eeeeee",
},
sectionTitle:{
fontSize:24,
fontWeight:'bold',
},
itemView:{
padding:8,
},
});
|
반응형
'안드로이드 웹앱 콘테츠 개발자 양성(국비지원) > HybridApp' 카테고리의 다른 글
HybridApp-React Native 2세대 (1-1 BottomTabNavigator) (6) | 2020.01.23 |
---|---|
HybridApp-React Native 2세대 (Page 전환-react_navigation, 외부 라이브러리 추가 사용) (0) | 2020.01.22 |
HybridApp-React Native 2세대 (ListView - FlatList) (1) | 2020.01.22 |
HybridApp-React Native 2세대 (Layout 2, ListView를 안쓰고 이미지텍스트 배치) (0) | 2020.01.21 |
HybridApp-React Native 2세대 (Layout) (0) | 2020.01.21 |
댓글