我已经尝试在react.js中创建一个搜索输入组件。在此组件中,我想当用户单击搜索图标时,输入焦点及其宽度通过css3 transition属性增加。这是我的代码的一部分:
<input className={"news-search-v2"} type="text" />
<i className="material-icons"> search </i>
以及我组件的手写笔代码
.news-search-v2
width 10px
transition: ease 0.5s all
&:focus
border-bottom solid 1px #5f6368
width 300px
[Arnav Yagnik
答案是正确的,但不是React
解决方案。
如果组件是功能部件,则可以使用useRef
钩子。
import React from 'react';
const FocusExample = () => {
const textInput = React.useRef(null);
const setFocus = React.useCallback(() => { textInput.current.focus() });
return (
<>
<input ref={textInput} className={"news-search-v2"} type="text" />
<i className="material-icons" onClick={setFocus}> search </i>
</>
);
};
或者如果您使用的是基于分类的视图,请使用createRef
:
import React from 'react';
class FocusExample extends React.Component {
constructor(props) {
super(props);
this.textInput = React.createRef();
}
setFocus = () => {
this.textInput.current.focus();
}
render() {
return(
<>
<input ref={this.textInput} className={"news-search-v2"} type="text" />
<i className="material-icons" onClick={this.setFocus}> search </i>
</>
);
}
}