Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- bfs dfs
- 폴더구조
- ReactNative
- 이영직
- 경우의 수
- 자료구조
- React Native
- 오블완
- 비트마스킹
- React Natvive
- 상속 관계 매핑
- 노마드코더
- springboot
- 완전탐색
- 해외 대외활동
- Navigation
- BFS
- multipart upload
- web view
- react
- 구현
- 원복
- 버튼 활성화
- 휴대폰 기기
- 창의충전소
- FlatList
- 백준 1992
- service 테스트
- 티스토리챌린지
- Project Bee
Archives
- Today
- Total
유미의 기록들
[React Native -12] 사진 개수 제한 본문
728x90
반응형
상품등록 Page에서 사진 등록하는 부분을 5개로 제한을 주려고 한다
상품등록 Page 부분
✔️ 갤러리로 이동하면서 배열크기 전달
🚫 이미지 배열크기가 5이면 경고창 뜨기 and 갤러리로 이동할 수 없음
// 갤러리로 이동
goGallerySreen=()=>{
if(this.state.imageURLs.length==5)
{
alert('이미지는 최대 5장까지 선택할 수 있어요');
}
else
{
this.props.navigation.navigate('Stack',{screen:"Gallery", params:{imageLength:this.state.imageURLs.length}});
}
}
갤러리 Page 부분
✔️ 상품등록에서 받은 imageLength값을 state값 변수로 넣어주기
this.state = {
imageLength:this.props.route.params.imageLength,
};
✔️ 이미지 버튼 터치 되면 count++, 터치 안되면 count--
🚫 이미지 배열크기가 5이상이면 경고창 뜨기
// 이미지를 누를 때
handlePress = (item) => {
if (this.state.itemIndex.includes(item)) {
const selectItem = this.state.itemIndex.filter(itemIndex => itemIndex !== item);
this.setState({imageLength:this.state.imageLength-1}) //count--
return this.setState({ itemIndex: selectItem })
}
if(this.state.imageLength>4){
alert('이미지는 최대 5장까지 선택할 수 있어요');
return this.setState({imageLength:this.state.imageLength})
}
this.setState({imageLength:this.state.imageLength+1}) //count++
this.setState({ itemIndex: this.state.itemIndex.concat(item)});
}
카메라 Page 부분
✔️ 상품등록에서 받은 imageLength값을 state값 변수로 넣어주기
this.state = {
imageLength:this.props.route.params.imageLength,
}
✔️ 카메라 버튼 터치 되면 count++
🚫 이미지 배열크기가 5이상이면 경고창 뜨기
//카메라 버튼 클릭
onPressButton = async () => {
const photo = await this.camera.current.takeSnapshot({
flash: 'off',
})
if(this.state.imageLength>4){
alert('이미지는 최대 5장까지 선택할 수 있어요');
return this.setState({imageLength:this.state.imageLength})
}
this.setState({imageLength:this.state.imageLength+1}) //count++
this.setState({ imageURLs: this.state.imageURLs.concat('file://' + photo.path) })
}
결과물
728x90
반응형
'MDLAB 기록 > 차량부품거래애플리케이션' 카테고리의 다른 글
[React Native -14] 다음 주소 검색 API 이용하기 (1) | 2022.11.25 |
---|---|
[React Native -13] Web View (0) | 2022.11.24 |
[React Native -11] Drawer Navigation (0) | 2022.11.23 |
[React Native -10] Navigation LifeCycle (0) | 2022.11.14 |
[React Native -9] FlatList (0) | 2022.11.03 |
Comments