javascript - 在 React Native 中使用 flatlist 从 API 获取数据
问题描述
我正在尝试显示特定 ID 的数据。因为我的数据是一个数组。我使用 flatlist 来显示它。它显示数据,但显示所有 ID。我该如何解决这个问题。任何人都可以帮助解决这个问题吗?
<View style={[components.container]} >
<View style={[components.logTopPanel, { backgroundColor: '#48bbae' }]} >
<View style={components.back_container}>
</View>
<View style={[components.logTitleContainer]} >
<TouchableOpacity style={components.icon_container} onPress={() => this.props.navigation.navigate('LeaveIndexScreen')}>
<View style={[components.back_button, components.justifyCenter, components.alignCenter, { marginHorizontal: 15 }]} >
<MaterialIcon name="arrow-back" size={28} color="white" />
</View>
</TouchableOpacity>
<View style={components.title_container}>
<Text style={[components.headerTextTitle, { textAlign: 'center' }]}>Leave Application</Text>
<Text style={[components.headerText]}> Records Details</Text>
</View>
</View>
</View>
<View style={[components.alignCenter, components.boxWithShadow, colours.backWhite, { borderBottomLeftRadius: 10,borderBottomRightRadius: 10,marginBottom: 5 }]}>
<View style={components.textFlexStart}>
<Text style={[components.titleTextStyle],{width:'100%', fontSize:20,textAlign:'center'}}>{staticData.get_centre_settings().centre.centre_name}</Text>
</View>
</View>
<View style={[components.logDetailPanel, components.alignCenter, { paddingHorizontal: '3%', backgroundColor: '#FBF2F0' }]} >
<ScrollView contentContainerStyle={[{ flexDirection: 'row', marginTop: 5 }]} >
{this.state.view_access == false
? <NoAccessScreen></NoAccessScreen>
: this.state.isLoading
? <View style={[components.alignCenter, components.justifyCenter, components.pad_10]} >
<ActivityIndicator />
</View>
: <FlatList
data={this.state.staffLeave}
renderItem={({ item }) =>
this.state.text == null || item.staff_name.toUpperCase()().includes(this.state.text.toUpperCase()())
? <TouchableOpacity>
<View style={[components.listContainer]} >
<View style={components.cardContainer}>
<View style={[components.dotContainer]} >
<View style={[components.flex_row, components.justifyAlignStart, { padding: 5 }]}>
<View style={{ width: '75%' }}>
{
item.staff_name != null
?
<View style={{ width: '100%' }}>
<Text style={[components.titleTextStyle]}>{item.name}</Text>
</View>
: null
}
{
item.centre_name != null
?
<View style={{ width: '100%' }}>
<Text style={[components.titleTextStyle]}>{item.centre_name}</Text>
</View>
: null
}
{
item.leave_days != null
?
<View style={{ width: '100%' }}>
<Text style={[components.titleTextStyle]}>{item.leave_days}</Text>
</View>
: null
}
{
item.date_range != null
?
<View style={{ width: '100%' }}>
<Text style={[components.titleTextStyle]}>{item.date_range}</Text>
</View>
: null
}
{
item.approved_by != null
?
<View style={{ width: '100%' }}>
<Text style={[components.titleTextStyle]}>{item.approved_by}</Text>
</View>
: null
}
{
item.approved_date != null
?
<View style={{ width: '100%' }}>
<Text style={[components.titleTextStyle]}>{item.approved_date}</Text>
</View>
: null
}
{
item.status != null
?
<View style={{ width: '100%' }}>
<Text style={[components.titleTextStyle]}>{item.status}</Text>
</View>
: null
}
</View>
</View>
</View>
</View>
</View>
</TouchableOpacity>
: null
}
keyExtractor={(item, index) => index.toString()}
extraData={this.state}
nestedScrollEnabled={true}
/>
}
</ScrollView>
<ActionButton
buttonColor={Colors.blueSky}
offsetX={20}
onPress={() => navigate('LeaveEditScreen', { id: this.state.staff_id })}
renderIcon={() => { return (<MaterialIcon name="edit" size={20} color="white" />); }}
/>
</View>
</View>
);
}
这是输出。
我一直在寻找这个,但找不到一个可以说明这一点的答案。
谢谢!
解决方案
推荐阅读
- java - 如果行包含扫描仪输入,如何使用扫描仪从文本文件中返回一行?
- typescript - 将部分接口类型的对象转换为 TypeScript 中的“完整”接口类型
- sql - 除了算子计算成本高吗
- odoo - 单击项目时如何将状态从已发送更改为已读
- tensorflow - 神经网络只有在数据云接近 0 时才会收敛
- java - 三星 S8+ 中的自动对焦
- laravel - Laravel 5.4:无法打开流:权限被拒绝
- javascript - 音频未在 Howler.js 中播放
- angular - Angular 5:应用程序 http 标头和 url 参数
- javascript - 无法为数组内的对象赋值