Я использую Flatlist для отображения списка элементов.В Componentwillmount я устанавливаю состояние результата выборки.
constructor() {
super();
this.state = {
listOfCameras: [],
};
}
componentWillMount() {
apiService.listCameras().then((res) => {
this.setState({ listOfCameras: res });
});
}
Мой плоский список выглядит так:
createListOfCams() {
return (
<FlatList
data={this.state.listOfCameras}
renderItem={({ item, index }) => {
return (
this.createSingleCamera(item, index)
);
}}
keyExtractor={(item, index) => index.toString()}
// extraData={}
/>
);
}
и, наконец, мой createSingleCamera выглядит так:
createSingleCamera(item, index) {
const modelCam = item.model;
return (
<View style={styles.singleCamLineView}>
<View style={styles.modelCamNameView}>
<Text style={styles.singleCameraText}>{modelCam}</Text>
</View>
<View style={styles.deleteIconView}>
<TouchableOpacity
onPress={() => {
this.deleteCamFromList(item, index);
}}
>
<Text style={styles.singleCameraText}> </Text>
</TouchableOpacity>
</View>
</View>
);
}
То, что я хотел бы сделать, это передать индекс элемента, который я хочу удалить, в метод deleteCamFromList, а затем использовать его для повторной визуализации плоского списка.
Пока мой deletefromCamList выглядит следующим образомthis:
deleteCamFromList(item, index) {
let allCamerasBeforeDelete = [...this.state.listOfCameras];
let newArryOfCams = allCamerasBeforeDelete.filter(index);
}
Как бы я использовал фильтр, чтобы вернуть новый массив минус индекс, который я ему предоставил?