Вы можете отправить результат переключения на родительский компонент с помощью обратного вызова. есть два обратных вызова для добавления и удаления элемента из массива путем проверки и снятия флажка customCheckbox.
это пример кода:
CustomCheckbox
this.state = {
checked: false,
};
toggleChange = () => {
if (!this.state.checked){ // it is checking true now...
this.prop.checkedTrue(this.props.name)
} else {
this.prop.checkedFalse(this.props.name)
}
this.setState({ checked: !this.state.checked })
};
render() {
return (
<View style={styles.container}>
<Text style={styles.text}>{this.props.name}</Text>
<CheckBox
checked={this.state.checked}
onPress={() => this.toggleChange()}
/>
</View>
)}
AddFriendScreen
puchToArray = (name) => {
let tmp = this.state.involvedfriends
tmp.push(name)
this.setState({ involvedfriends: tmp })
}
removeFromArray = (name) => {
let tmp = this.state.involvedfriends
let index = tmp.indexOf(name);
if (index>-1){
tmp.splice(index, 1);
this.setState({ involvedfriends: tmp })
}
}
render:
{this.state.involvedFriends.map((name, key) => (
<View>
<CustomCheckbox
name={name}
checkedTrue = {(name) => {this.puchToArray(name)}}
checkedFalse = {(name) => {this.removeFromArray(name)}}
/>
</View>
))}
Надеюсь, это поможет вам.