我需要像下面这样的平面列表,默认选择第一项“VISA”,我该如何使它工作?
非常感谢!
这是我的代码:
Payment_Card(组件):
<FlatList
horizontal ={true}
data = {payment_methods}
keyExtractor ={card => card.id.toString()}
renderItem ={({item,index})=>
<Payment_Card
img = {item.img}
onPress ={()=>{
setIndexValue(index);
console.log(item);
}}
bgColor = {index===indexValue?colors.light_yellow:colors.white}
/>
}
/>
答案 0 :(得分:1)
我会将选定的道具传递给 PaymentCard 组件。 PaymentCard 组件然后使用选定的道具在内部控制 UI。
有两种方法可以将第一个元素设置为默认值:
<FlatList
horizontal={true}
data={payment_methods}
keyExtractor={(card) => card.id.toString()}
renderItem={({ item, index }) => (
<Payment_Card
img={item.img}
onPress={() => {
setIndexValue(index);
console.log(item);
}}
selected={index === 0}
/>
)}
/>
答案 1 :(得分:1)
@Yellow Clock,初始化indexValue状态为:
const [indexValue, setIndexValue] = useState(0);