keyExtractor를 설정해서 item.SN값을 키로 사용한다고 선언했는데
막상 rowMap[]으로 접근하면 안된다.
data={} 설정해주는 부분에 "key"라는 키값을 가지고 있는 데이터가 있는지 살펴보자
SwipeListView가 자동으로 키값이 "key"인 데이터를 읽어서 SwipeListView의 키로 사용하면서
rowMap[]에 제대로 접근이 안되는 오류가 발생한다.
해결법 : "key"를 "license_key"로 바꾸면 된다.
<SwipeListView
data={DATA}
renderItem={({ item, index }) => <LicenseRow
SN={item.SN}
name={item.name}
exdate={item.exdate}
license_key={item.license_key}
about={item.about}
attach={item.attach}
displayname={item.displayname}
tag={item.tag} />}
keyExtractor={( item, index) => {
if(item.SN){
return item.SN.toString(); // key를 지정해준다.
}
}}
renderHiddenItem={ (data, rowMap) => (
<View style={{flex: 1,
flexDirection: 'row',
padding: 10,
marginLeft:16,
marginRight:16,
marginTop: 8,
marginBottom: 8,
borderRadius: 5,
}}>
<TouchableOpacity onPress={()=>{goEditPage(data.item.SN, data.item.name, data.item.exdate, data.item.license_key, data.item.about, data.item.attach, data.item.displayname, data.item.tag); rowMap[data.item.SN].closeRow();}}>
<Feather name="edit" style={{width : 75, padding:10}} size={24} color="black" />
</TouchableOpacity>
<Text style={{flex : 1}}></Text>
<TouchableOpacity onPress={()=>{deleteLicense(data.item.SN); rowMap[data.item.SN].closeRow();}}>
<MaterialCommunityIcons name="trash-can-outline" style={{width : 75, paddingLeft:37, padding : 11}} size={24} color="red" />
</TouchableOpacity>
</View>
)}
leftOpenValue={75}
rightOpenValue={-75}
refreshing={console.log()}
onRefresh={console.log()}
/>
'Troubleshooting' 카테고리의 다른 글
jdbc:log4jdbc:mariadb: 리눅스에서 작동하지 않음 (0) | 2021.01.03 |
---|---|
[react native] Network request failed (0) | 2020.12.22 |
[IE] 로컬에서는 잘되던게 tomcat 배포하면 안되는 현상 (0) | 2020.09.25 |
ORA-12560: TNS:protocol adapter error 해결법 (0) | 2020.07.14 |
200 Command PORT okay / 150 Opening data connection for [IP] - 오류해결 (0) | 2019.12.11 |