Реагируй на родную галочку, unchek не работает для пользовательских иконок
Я учусь реагировать на родной, я пытаюсь использовать флажок. Простой флажок, который мы импортируем из реагировать родной. т.е. импорт {checkbox} из реагирует на родной у меня работал. Но когда я попытался использовать флажок от реагировать на нативные элементы, он не работает. Он только устанавливает значение по умолчанию для непроверенного значка и не изменяется.
<View style = {styles.containerForCheckBoxValues}>
<CheckBox
style={styles.checkBox}
checkedIcon={<Image source={require('/root/VS_Code/JavascriptProjects/assets/Images/Checkboxactive/Checkboxactive.png')} />}
uncheckedIcon={<Image source={require('/root/VS_Code/JavascriptProjects/assets/Images/Checkboxdefault/Checkboxdefault.png')} />}
value={this.state.checkedForKids}
onChange={() => this.onChangeCheckForKids()} />
<Text style={styles.textViewStyleKidsStatusLabel}>Have Kids</Text>
</View>;
1 ответ
На реагировать-нативные элементы у вас есть опора checked
это должно измениться между true
или же false
это то, что определяет, если это проверено или нет. Для изменения вы можете вызвать функцию onPress
,
<CheckBox
style={styles.checkBox}
checkedIcon={<Image source={require('/root/VS_Code/JavascriptProjects/assets/Images/Checkboxactive/Checkboxactive.png')} />}
uncheckedIcon={<Image source={require('/root/VS_Code/JavascriptProjects/assets/Images/Checkboxdefault/Checkboxdefault.png')} />}
checked={this.state.checkedForKids}
title='Your title'
onPress={() => this.onChangeCheckForKids()}
С несколькими флажками, как я сделал с массивом. Если вы знаете, сколько флажков у вас будет, это просто, каждому флажку просто "приписать" число, например, флажок 1 будет позицией 0 в массиве.
Если вы не знаете, сколько у вас есть, я бы установил дополнительный ключ к вашему объекту. будет выглядеть так:
let x = [{
title: 'this is your title',
id: 1,
checked:true,
}{
title: 'this is your second title',
id: 2,
checked:false,
}];
Полный простой рабочий пример:
<CheckBox
title={'click here'}
checked={this.state.delivery}
onPress={() => this.setState({ delivery: !this.state.delivery })}/>