condition에 따라 style에 변화주기
Written on June 24, 2019
excerpt: condition/state에 따라 간단하게 style에 변화를 줄 수 있는 방법!
바로 style을 배열로 주는 것이다. 공통된 style과, state에 따라 달라지는 style을 조건부로 주어 isCompleted
라는 state가 변할 때 마다 다른 style 효과를 줄 수 있다.
<View
style={[
styles.circle,
isCompleted ? styles.completedCircle : styles.unCompletedCircle
]}
/>
전체 컴포넌트 코드
export default class ToDo extends Component {
state = {
isCompleted: false
};
_toggleComplete = () => {
this.setState(prevState => {
return {
isCompleted: !prevState.isCompleted
};
});
};
render() {
const { isCompleted } = this.state;
return (
<View style={styles.container}>
<TouchableOpacity onPress={this._toggleComplete}>
<View
style={[
styles.circle,
isCompleted ? styles.completedCircle : styles.unCompletedCircle
]}
/>
</TouchableOpacity>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
width: width - 50,
borderBottomWidth: StyleSheet.hairlineWidth,
borderBottomColor: "#bbb",
flexDirection: "row",
alignItems: "center"
},
circle: {
width: 30,
height: 30,
borderRadius: 15,
borderWidth: 2,
marginRight: 20
},
completedCircle: { borderColor: "#bbb" },
unCompletedCircle: { borderColor: "#720D5D" }
});
참고자료
👩🏻💻 배우는 것을 즐기는 프론트엔드 개발자 입니다
부족한 블로그에 방문해 주셔서 감사합니다 🙇🏻♀️
in the process of becoming the best version of myself