chuikoffru
@chuikoffru
Full Stack JS Developer

Как использовать SwitchIOS в цикле в React Native?

Здравствуйте! Делаю мобильное приложение с помощью React Native 0.30.

Есть компонент Report, который через props получает данные.

export default class Report extends Component {
    constructor(props) {
      super(props);
      
      this.state = {
        questions : [],
        progress : 0,
        activeSlide : 0
      }
    }

    setActiveSlide(i, inc) {
      let max = this.props.check.questions.length;
      let curr = inc ? i+1 : i-1;
      let progress = curr / max;
      this.setState({
        activeSlide : curr,
        progress : progress
      })
    }


Каждый слайд рендерится с помощью функции:

renderSlide(slide, i) {
      if(this.state.activeSlide == i)
      return(
        <View>
          <Text>{slide.position} / {this.props.check.questions.length}. {slide.title}</Text>
          <SwitchIOS
            onValueChange={(value) => this.setCheck(value, i)}
            value={/*anything*/}
          />
          <View>
            <TouchableHighlight onPress={() => this.setActiveSlide(i)}>
                <Text>Назад</Text>
            </TouchableHighlight>
            <TouchableHighlight onPress={() => this.setActiveSlide(i, true)}>
                <Text>Далее</Text>
            </TouchableHighlight>
          </View>
        </View>
      )
    }


А теперь я не совсем понимаю как мне поступить с SwitchIOS, то ли мне все отметки записывать в отдельный state.questions, либо мне менять существующий массив данных. Если делать с помощью добавления в state.questions, так:

setCheck(val, i) {
      this.state.questions.push({index : 1, check : val});
    }


То как мне менять состояние переключателя? Какой value указывать? Если есть другие способы поделитесь пожалуйста.
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы