我是编程新手,我想模糊“文本”类型的输入元素。
我要做什么? 我在一个react组件中有一个输入元素,这就是使用querySelector获得焦点的原因。现在,在其他组件中,我想从同一输入元素中删除焦点。
我尝试将querySelector与blur方法一起使用。但是没用。
下面是我的代码,
class Popup extends React.PureComponent {
render() {
return {
<OverlayComponent
<input
type="text"/>
</OverlayComponent>
}
}
}
class OverlayComponent extends React.PureComponent {
constructor(props) {
super(props);
this.element = document.createElement('div');
}
componentDidmount() {
const input = this.element.querySelector
('input:not([type=button]),input:not([type=submit])
:not([type=file]),textarea');
input && input.focus();
}
render() {
return {
//something
}
}
}
class Anothercomponent extends React.PureComponent {
componentDidmount() {
const input = document.querySelector
('input:not([type=button]),input:not([type=submit])
:not([type=file]),textarea');
input && input.blur();
}
}
输入元素将焦点放在overlyacomponent上,但不会删除AnotherComponent中输入元素的焦点。OverlayComponent和AnotherComponent在同一页面中可见。
有人可以让我知道我要去哪里了。谢谢。
编辑: 如何在AnotherComponent中使用setTimeout方法从输入元素中删除焦点。