【发布时间】:2019-11-05 03:15:30
【问题描述】:
我是编程新手,我想模糊“文本”类型的输入元素。
我想做什么? 我在一个反应组件中有一个输入元素,那就是使用 querySelector 获得焦点。现在在其他组件中,我想从同一个输入元素中移除焦点。
我已经尝试使用带有模糊方法的 querySelector。但没用。
下面是我的代码,
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 方法从输入元素中移除焦点。
【问题讨论】:
标签: javascript html reactjs