Ответы пользователя по тегу React
  • Вопросы об одной строке React кода?

    @f_ban
    Судя по приведеному коду:
    1. В this.state.active хранится индекс текущего активного айтема.
    2. Через this.props.items в компонент прокидвыается массив айтемов, с которыми нужно работать.
    3. Могут сойтись звезды так, что this.state.active будет иметь значение, выходящее за пределы массива this.props.items (самое первое предположение о природе данной проверки). В этом случае конструкция this.props.items[this.state.active] вернет значение undefined,
    4. Далее в работу включается оператор &&, в случае когда (false && чтото_там_еще), выигрывает то, что справа. Оператор && сперва стратается привести значение слева к булевому, по одному определенному алгоритму приведения, в частности undefined приводится к значению false. Таким образом, конструкция будет исполнена только если this.props.items[this.state.active] не вернет undefined/null/0/''/false.
    5. Конструкция {...this.props.items[this.state.active]} говорит о том, что все свойства возвращенного объекта нужно вставить как пропсы в создаваемый Content
    Ответ написан
    Комментировать
  • Как сделать слайдер зацикленным?

    @f_ban
    nextSlideHandler = (e, item, index ) => {
      let arr = [...this.state.data];
      const {direction} = e.currentTarget.dataset;
      const {currentImageIndex,
             images} = this.state.data[index];
      const newIndex = direction === 'next'
                      ? (currentImageIndex+1) % (images.length-1)
                      : ((currentImageIndex || images.length)-1) % (images.length-1);
      arr[index].cantGoNext = true;
      arr[index].cantGoPrev = newIndex !== 0;
      arr[index].currentImageIndex = newIndex;
    
      this.setState({ data:arr });
    }
    Ответ написан
    Комментировать