#javascript #reactjs
Вопрос:
Я пытаюсь создать следующий элемент для своего проекта react http://demo.icanbecreative.com/css3-animated-search-box/ использование этого справочного руководства https://icanbecreative.com/article/css3-animated-search-box/. но у меня возникла проблема при попытке реализовать следующую функцию
function searchToggle(obj, evt){
var container = $(obj).closest('.search-wrapper');
if(!container.hasClass('active')){
container.addClass('active');
evt.preventDefault();
}
else if(container.hasClass('active') amp;amp; $(obj).closest('.input-holder').length == 0){
container.removeClass('active');
// clear input
container.find('.search-input').val('');
}
}
Поскольку он использует jQuery, поэтому я хочу преобразовать эту функцию, чтобы иметь возможность выполнять ее в своем коде. Попробуйте скрыть элемент и показывать его динамически при каждом нажатии кнопки следующим образом
const [showInput, setShowInput] = useState(false);
<div className="search-wrapper">
<div className="input-holder">
<button className="search-icon" onClick={()=>setShowInput((p) => !p)}><span></span></button>
{showInput amp;amp; <input type="text" className="search-input" placeholder="Type to search" /> }
</div>
<span className="close" onClick={displaySearchToggle}></span>
</div>
Но это не работает.но это не работает, кнопка отображается правильно, но при нажатии на нее не отображается ввод