Реагируй на родную галочку, 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 })}/>
Другие вопросы по тегам