이어서 위쪽에 언어 선택 카테고리를 만들어 볼 건데, 직접 만들어도 되지만, 컴포넌트 소스 코드가 있길래 그냥 사용했다
https://github.com/zengkm/react-native-select-button
그런데 내가 만들어야 하는 카테고리의 경우, 맨 처음 들어가면 '전체' 버튼이 선택된 상태여야 해서 소스코드를 조금 수정해 주었다
constructor(props) {
super(props);
const set = Array(this.props.count).fill(false)
if (this.props.initialSelect != null)
set[this.props.initialSelect] = true
this.state = {
select: set,
}
}
위 코드에서 constructor 부분을 위와 같이 수정해, initialSelect props을 이용해 default로 선택되어 있는 버튼이 존재할 수 있도록 해 주었다
<View>
<ScrollView horizontal={true} showsHorizontalScrollIndicator={false}>
<SingleSelectButton
count={7}
textArray={['전체', '영어', '한국어', '중국어', '일본어', '스페인어', '불어']}
initialSelect={0}
getSelected={setLanguage}
selectedButtonColor="#000000"
selectedTextColor="#ffffff"
containerStyle={{ flexDirection: 'row', paddingVertical: 15, paddingHorizontal: 10, backgroundColor: '#EBEDF6' }}
buttonStyle={{ width: 66, height: 37, ...boardStyle.SelectButton }}
textStyle={boardStyle.SelectText}
/>
</ScrollView>
</View>
count에 전체 버튼 개수를 넣고, textArray에 각각 들어갈 카테고리명을 넣고, 위에서 수정하며 추가한 initialSelect에 0을 지정한다
getSelected는 선택된 버튼 데이터 저장하는 함수를 넣으면 된다
'Programing > React, React Native' 카테고리의 다른 글
[React Native] TextInput 사용해서 정보 입력받기(useState) (0) | 2024.07.16 |
---|---|
[React Native] 절대 위치 컴포넌트 만들기(Position Absolute) (0) | 2024.07.16 |
[React Native] 헤더 스타일 수정하기(Navigation Header) (0) | 2024.07.16 |
[React Native] onPress가 자동실행되는 문제 (0) | 2024.06.26 |
[React Native] Unable to resolve 에러 (0) | 2024.06.14 |