Android 如何将数组放入复选框并根据数组id单击它?
当我单击1复选框时,所有值复选框也被选中,那么我的问题是如何根据数组的值来分隔它Android 如何将数组放入复选框并根据数组id单击它?,android,ios,react-native,Android,Ios,React Native,当我单击1复选框时,所有值复选框也被选中,那么我的问题是如何根据数组的值来分隔它 render(){ const{data}=this.props const{checked,statusChecked,unhide}=this.state const checkBoxCourier=data.map((项目、索引)=>{ 返回( {'[LOGO]'} {item.courier_name.toUpperCase()} { item.services.map((item2,索引)=>( thi
render(){
const{data}=this.props
const{checked,statusChecked,unhide}=this.state
const checkBoxCourier=data.map((项目、索引)=>{
返回(
{'[LOGO]'}
{item.courier_name.toUpperCase()}
{
item.services.map((item2,索引)=>(
this.onCheckBoxPress(item2.courier\u service\u id,item2.status)}
/>
{item2.service_name}
{item2.service_description}
))
}
)
})
返回(
{checkBoxCourier}
)
您需要向复选框传递一个特定于服务项而非组件的标志,如下所示:
render(){
const {data} = this.props
const {checked, statusChecked, unhide} = this.state
const checkBoxCourier = data.map((item, index) => {
return (
<Card key={index} style={globalStyle.padDefault}>
<Item>
<Text>
{'[LOGO] '}
</Text>
<Text style={styles.bold}>{item.courier_name.toUpperCase()}</Text>
</Item>
{
item.services.map((item2, index) => (
<ListItem
key={index}
>
<CheckBox
checked={item2.isChecked} // Save the value here
onPress={() => this.onCheckBoxPress(item2.courier_service_id, item2.status)}
/>
<View style={styles.row}>
<Body>
<Text style={styles.textStyle}>{item2.service_name}</Text>
<Text style={styles.textStyle}>{item2.service_description}</Text>
</Body>
</View>
</ListItem>
))
}
</Card>
)
})
render(){
const{data}=this.props
const{checked,statusChecked,unhide}=this.state
const checkBoxCourier=data.map((项目、索引)=>{
返回(
{'[LOGO]'}
{item.courier_name.toUpperCase()}
{
item.services.map((item2,索引)=>(
this.onCheckBoxPress(item2.courier\u service\u id,item2.status)}
/>
{item2.service_name}
{item2.service_description}
))
}
)
})
您可以这样做
checked={index+item2.courier_service_id == this.state.Selected ? checked :uncheck}
onPress={() => this.onCheckBoxPress(item2,index)}
/>
在onCheckBoxPress中
onCheckBoxPress(){
this.setState({Selected:index+item2.courier_service_id})
}
我希望这能帮助你你能提供代码吗..这是我的代码,先生..哇,谢谢。。这是工作,但我不想让它成为多个复选框,这是怎么回事?你给的那个只能检查一次,先生,我的意思是不想让那个复选框成为多个选择。。。在我之前的例子中,当我点击1复选框时,所有的复选框都被选中,我只想根据它们的值只选中1个组件。。这就是为什么我说多选复选框嘿,多选复选框是什么?我还没找到办法,呵呵
onCheckBoxPress(){
this.setState({Selected:index+item2.courier_service_id})
}