Я рендеринг Flatlist и в этом я хочу, чтобы отображать кнопку на основе, если идентификатор кнопки находится в моей корзине.Как я могу это сделать ...
это мой код для кнопки:
addBtn = (id) => {
try{
let productAdded = this.state.addedToCart;
return productAdded.map((pid) => {
if (pid == id) {
// console.log(pid);
// console.log("-----------");
console.log(id + " is added into cart");
return(
<Button
key={id}
style={{
backgroundColor: '#fff',
borderWidth: 2,
borderColor: '#2e6153',
borderStyle: 'solid',
}}
>
<Text style={{color: '#2e6153',}}>Added</Text>
</Button>
);
} else {
console.log("not added to cart");
return(
<Button
key={id}
onPress={() => {
this.saveCart(id);
}}
style={{
backgroundColor: '#2e6153',
borderWidth: 2,
borderColor: '#2e6153',
borderStyle: 'solid',
width: 80,
alignItems: 'center',
justifyContent: 'center',
}}
>
<Text>Add</Text>
</Button>
);
}
});
}catch(errors){
console.log(errors);
}
}
, где идентификатор "addBtn = (id)" исходит из renderItem из FlatList.
и this.state.addedToCart - это массив моих товаров, которые есть в моей корзине.В настоящее время я добавил в корзину два товара, поэтому this.state.addedToCart = ["1015", "1016"]
и вывод: Вот изображение моего вывода
Я хочу сделать это только один раз, но кнопки отображают столько раз, сколько размер моей корзины.