Android 如何将数组放入复选框并根据数组id单击它?

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

当我单击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,索引)=>(
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})
    }