DevGang
Авторизоваться

React добавляем inderterminate чекбоксу

Мне нравится React, рендеринг на основе состояния и логический рабочий процесс позволили мне увидеть свет в этой современной среде. Это не значит, что я иногда не расстраиваюсь, что «простые» вещи кажутся сложнее, чем они должны быть. Получение ссылки на элемент и изменение его свойств раньше было простым, но теперь вы должны принять во внимание, что у вас обычно нет ссылок на элементы - вам нужно думать по-другому. Я узнал об этом, когда мне нужно было установить свойство inderterminate чекбоксу, свойство, не распознаваемое с помощью атрибута, которое требует дескриптора элемента и установки свойства напрямую.

Параметр inderterminate добавляет неопределенное состояние элементу в данном случае чекбоксу 

Чтобы добавить свойство inderterminate к чекбоксу, мне нужно было воспользоваться атрибутом ref:

const { value, checked, indeterminate } = this.props

return render(
     el && (el.indeterminate = indeterminate)}
    />
)

Поскольку ref запускается при каждом рендеринге, свойство inderterminate обновляется соответствующим образом, и, таким образом, чекбокс отображается, как и ожидалось.

Независимо от того, насколько удивительным выглядит ваш фреймворк, всегда есть слепое пятно, которое требует небольшого "костыля" для достижения ожидаемого. Это то, что делает фреймворк: дает вам 99% того, что вам нужно, и затрудняет 1%!

Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

Освой перспективную онлайн профессию!

Получить скидку