React-Native/[RN]Expo
[RN공부하기] [5]Lists & ScrollView
Dev갱이
2021. 10. 20. 10:07
728x90
(1) List - map함수를 사용해서 데이터 뿌려주기
//App.js
import { StatusBar } from 'expo-status-bar';
import React, { useState } from 'react';
import { StyleSheet, Text, View, Button, TextInput } from 'react-native';
export default function App() {
const [people, setPeople ] = useState([
{name: "susan", key:'1' },
{name: "yoshi", key:'2' },
{name: "mario", key:'3' },
{name: "luigi", key:'4' },
{name: "peach", key:'5' },
{name: "toad", key:'6' },
{name: "bowser", key:'7' },
])
return (
<View style={styles.container}>
{people.map( (index) => {
return (
<View key={index.key}>
<Text style={styles.item}>{index.name}</Text>
</View>
)
})}
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
item:{
marginTop : 24,
padding : 30,
backgroundColor : 'pink',
fontSize : 24
}
});
map함수를 사용해서 데이터 뿌려주는건 react랑 같다. map함수를 사용할때 항상 key값을 넣어줘야하는거 잊지 말자.
:: 결과화면
map 함수에서 return을 지우고 싶다. 원래 리액트에서도 안썻던것 같아서 코드 수정
{people.map( (index) => (
<View key={index.key}>
<Text style={styles.item}>{index.name}</Text>
</View>
))}
(2) ScrollView - 모바일에선 자동으로 스크롤이 생기기 않기 때문에 꼭 이걸 넣어줘야함!!!
https://reactnative.dev/docs/scrollview
ScrollView · React Native
Component that wraps platform ScrollView while providing integration with touch locking "responder" system.
reactnative.dev
ScrollView추가하기
import { StyleSheet, Text, View, Button, TextInput, ScrollView } from 'react-native';
import { StatusBar } from 'expo-status-bar';
import React, { useState } from 'react';
import { StyleSheet, Text, View, Button, TextInput, ScrollView } from 'react-native';
export default function App() {
const [people, setPeople ] = useState([
{name: "susan", key:'1' },
{name: "yoshi", key:'2' },
{name: "mario", key:'3' },
{name: "luigi", key:'4' },
{name: "peach", key:'5' },
{name: "toad", key:'6' },
{name: "bowser", key:'7' },
])
return (
<View style={styles.container}>
<ScrollView>
{people.map( (index) => (
<View key={index.key}>
<Text style={styles.item}>{index.name}</Text>
</View>
))}
</ScrollView>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
item:{
marginTop : 24,
padding : 30,
backgroundColor : 'pink',
fontSize : 24
}
});
모바일에서 봤을때 스크롤이 없었는데 스크롤이 생김!!!
728x90