Здесь берётся текущий стэйт, деструктиризируется в объекте, а остальные поля, значения которых указываются в этом объекте обновляются.
То есть возвращается в результате новый state с обновленным полем.
Ты фокусишь форму только в момент клика, и active и focus у тебя потом встаёт на input.
В итоге поэтому и моргает, т.к. у тебя фокус на форму, а не на input.
Попробуй сделать сайт сложнее чем ToDo-List, например, журнал и планировщик финансов.
Где можешь по категориям записывать свои траты, планировать свои расходы на неделю и т.д.
Возьми ReactJs, почитай документацию, посмотри лекции на youtube, и просто уже начни делать!
Функция не привязана ни к какому контексту. Напиши либо стрелочную функцию handleSearch = event => {}
Либо поставь биндинг на функцию: onChane={this.handleSearch.bind(this)}
.submenu {
max-height: 0;
overflow: hidden;
transition: 0.2s (вот это и отвечает за анимацию)
}
.active {
max-height: 30px;
transition: 0.2s
}
Проблема этого метода, что надо заранее знать высоту контента внутри.
Иначе если поставить max-height больший чем свой контент, то можно заметить задержки в анимации.
Никаких jq в анимациях не надо использовать.
Тогда внутренний блок растянется на всю ширину страницы, от этого можешь оттолкнуться и сделать нужную тебе ширину.
Внутри этого блока сделаешь еще один, и просто там margin: 0 auto
отцентрируешь контент
Ответ написан
Комментировать
Комментировать
Оценили как «Нравится»
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.