【发布时间】:2019-08-07 14:20:14
【问题描述】:
我想从 FlatList 中选择多个项目。每当我点击它们时,它们应该被突出显示并且它们应该被保存在某个状态变量中
我正在使用“react-native-android-installed-apps”来获取 FLatList 中所有已安装应用的列表
这是我到目前为止所做的:
import React, {Component} from 'react';
import {View, Text, Image, FlatList, Dimensions, TouchableOpacity} from 'react-native';
import RNAndroidInstalledApps from 'react-native-android-installed-apps';
class App extends Component {
constructor(props) {
super(props);
this.state = {
data: []
};
}
componentDidMount() {
this.check();
}
check = () => {
let combine = [];
RNAndroidInstalledApps.getApps()
.then(apps => {
if(apps.length > 0) {
for(let i = 0; i< apps.length ; i++) {
thisApp = apps[i];
const obj = {'appName': thisApp.appName, 'icon': thisApp.icon};
combine.push(obj);
}
}
this.setState({
data: combine
});
// console.log(this.state.data);
});
};
renderSeperator = () => {
return(
<View
style={{
height: 1,
backgroundColor: '#CED0CE',
}}
/>
);
};
render() {
return(
<FlatList
data={this.state.data}
renderItem={({ item }) =>(
<TouchableOpacity
style={{flexDirection:'row', padding: 5 }}
>
<Image
style={{width: 51, height: 51, resizeMode: 'contain', flex: 1 }}
source={{ uri: `data:image;base64,${item.icon}` }}
/>
<Text style={{alignSelf: 'center', marginStart: 10, flex: 5 }}>{item.appName}</Text>
</TouchableOpacity>
)}
keyExtractor={(item) => item.appName}
ItemSeparatorComponent={this.renderSeperator}
/>
);
}
}
export default App;
我希望在选中每个项目时突出显示它,并将其数据保存在某个状态变量中
【问题讨论】:
标签: javascript react-native react-native-flatlist