React native 平面列表中的复选框

React native 平面列表中的复选框,react-native,react-native-elements,React Native,React Native Elements,我想向用户提供一个可供选择的项目列表。这些项目来自Redux状态对象。它是设备上联系人的列表 我使用了React Native中的一个“FlatList”,以及React Native元素中的一个“ListItem”。列表项有一个复选框。 <ListItem .. onPress={_onPress(index)} checkBox={{ .. onPress:

我想向用户提供一个可供选择的项目列表。这些项目来自Redux状态对象。它是设备上联系人的列表

我使用了React Native中的一个“FlatList”,以及React Native元素中的一个“ListItem”。列表项有一个复选框。

<ListItem
        ..
            onPress={_onPress(index)}

            checkBox={{
                ..
                onPress: _onPress(index),
            }}
        />
用户要选中/取消选中列表中的项目,可以单击复选框或列表项目的任何部分。

<ListItem
        ..
            onPress={_onPress(index)}

            checkBox={{
                ..
                onPress: _onPress(index),
            }}
        />
我的第一次尝试:正如您在下面的代码中看到的,我必须复制部分代码才能实现这一点。有没有更聪明的方法来做到这一点(以避免代码重复)

index.toString()}
数据={props.contactList}
renderItem={u renderItem}
ListMPtyComponent={没有要显示的联系人。}
刷新={state.reshing}
onRefresh={u onRefresh}
/>
常量_renderItem=({item,index})=>{
返回(
{
//重复以下2条语句(如下)!!!
_切换检查(索引);
道具。acContactSelect(索引);
}}
复选框={{
选中:_isItemChecked(索引),
检查命令:“检查”,
onPress:()=>{
//重复以下2条语句(如上)!!!
_切换检查(索引);
道具。acContactSelect(索引);
},
}}
/>
);
};
我的第二次尝试:我尝试使用函数。我收到错误消息(超过最大更新深度。)


常量_renderItem=({item,index})=>{
返回(
);
};
const_onPress=(索引)=>{
_切换检查(索引);
道具。acContactSelect(索引);
};

谢谢你的努力和时间来帮助

请更改此代码

<ListItem
        ..
            onPress={_onPress(index)}

            checkBox={{
                ..
                onPress: _onPress(index),
            }}
        />

<ListItem
        ..
            onPress={() =>_onPress(index)}

            checkBox={{
                ..
                onPress:() => _onPress(index),
            }}
        />
\u onPress(index)}
复选框={{
..
onPress:()=>(索引),
}}
/>

onPress={u onPress(index)}将立即调用函数

非常感谢。成功了。我仍然对回拨和立即打电话感到困惑。关于这个问题我需要多读一些。