FlatList 구성 요소를 사용한 React Native의 업스트림 플러시, 드롭다운 로드
문서 목록
사용된 FlatList 속성
array
렌더링 목록의 데이터 원본으로 현재 일반 그룹function
data
에서 하나씩 데이터를 꺼내 목록에 렌더링합니다.
데이터는 빈 그룹으로 이 구성 요소를 렌더링합니다
목록 끝에 렌더링된 구성 요소number
이 매개 변수는 비례값이고
픽셀 단위입니다.예를 들어 0.5는 내용의 맨 밑에 있는 거리가 현재 목록의 절반일 때 터치하는 것을 나타낸다function
밑에 거리가 부족onEndReachedThreshold
할 때 호출(5조와 협조하여 사용 가능, 페이지 나누기에 사용)function
데이터를 불러올 때 실행하는 방법으로 refreshing
와 함께 사용합니다.표시기의 색상을 수정하려면 refreshControl
속성
에서 이 속성을true로 설정하면 목록에 불러오는 기호가 표시됩니다 number
하단에 더 많은 지시기를 불러오는 위치를 설정합니다예제 코드
App.js
import React from 'react'
import {createStackNavigator,createAppContainer} from 'react-navigation'
import Home from './components/Home'
import FlatListPage from './components/lists/FlatListPage'
const StackNavigator = createStackNavigator(
{
Home:{
screen: Home,
navigationOptions:{
title:" "
}
},
FlatListPage:{
screen: FlatListPage,
navigationOptions:{
title:"FlatList"
}
}
},
{
headerLayoutPreset:"center"
}
)
const AppContainer = createAppContainer(StackNavigator)
export default AppContainer
Home.js
import React from 'react'
import {View,Button,StyleSheet} from 'react-native'
export default class Home extends React.Component{
render(){
return(
<View>
<View style={style.button}>
<Button title={' FlatList '}
onPress={()=>this.props.navigation.navigate('FlatListPage')}
style={style.button}/>
</View>
</View>
)
}
}
const style=StyleSheet.create({
button:{
marginBottom: 10
}
})
FlatList.js
import React from 'react'
import {FlatList,View,Text,StyleSheet} from 'react-native'
export default class FlatListPage extends React.Component{
constructor(props){
super(props)
this.state = {
refresh:false,
listData:[]
}
}
getNewData(){
this.setState({
refresh:true
})
let newData = []
for (let i=0;i<2;i++) {
newData.push('new data')
}
setTimeout(()=>{
this.setState({
refresh:false,
listData:[...newData,...this.state.listData]
})
},1500)
}
componentDidMount(){
this.getData()
}
getData(){
let newData = []
for (let i=this.state.listData.length;i<this.state.listData.length+5;i++) {
newData.push(i)
}
setTimeout(()=>{
this.setState({
listData:[...this.state.listData,...newData]
})
},1500)
}
render(){
return(
<View>
<FlatList
// 8
data={this.state.listData}
renderItem={(data)=>{
return <Text style={style.item}>{data.item}</Text>
}}
//
refreshing={this.state.refresh}
onRefresh={()=>{
this.getNewData()
}}
//
onEndReachedThreshold={.3}
onEndReached={()=>{
this.getData()
}}
ListEmptyComponent={
<Text style={{textAlign: "center",marginBottom: 10}}> </Text>}
ListFooterComponent={
<Text style={{textAlign: "center",marginBottom: 10}}> </Text>}
// key
keyExtractor={(item,index)=>index}
//
progressViewOffset={50} />
</View>
)
}
}
const style = StyleSheet.create({
item:{
backgroundColor:"green",
marginBottom: 10,
height:150,
lineHeight:150,
textAlign: "center"
}
})
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NextJS에서 환경 변수(.env) 설정내 환경 변수가 작동하지 않습니다 😱😱😱 이 상황에서 .env 파일을 사용하여 NextJS 앱에서 개발하는 동안 API URL 또는 비밀 키를 숨기고 싶을 수 있습니다. Next.js에서 환경 변수를 어떻게 사용합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.