Реагируй на родную галочку, unchek не работает для пользовательских иконок - PullRequest
0 голосов
/ 28 февраля 2019

Я учусь реагировать на родной язык, я пытаюсь использовать флажок.Простой флажок, который мы импортируем из реагировать родной.т.е. импорт {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 Ответ

0 голосов
/ 28 февраля 2019

На реагирующих нативных элементах у вас есть опора 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 в массиве.
Если вы не знаете, сколько у вас есть Iустановил бы дополнительный ключ к вашему объекту.будет выглядеть так:

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 })}/>
...