我正在使用antd库的搜索输入组件 . 它带有一个回调函数onSearch,我们可以捕获事件目标,并可以使用全局输入函数,如blur(),focus() . 但这似乎不起作用 . 如果我附加任何其他事件处理程序,如onClick或onChange它工作 . 这是一个错误还是我做错了什么 .
import React from 'react';
import ReactDOM from 'react-dom';
import 'antd/dist/antd.css';
import './index.css';
import { Input } from 'antd';
const Search = Input.Search;
ReactDOM.render(
<div>
<Search
placeholder="input search text"
onSearch={(value,e) => {
console.log(e.target);
e.target.blur();
console.log(value)
}}
enterButton
onChange={e => {
console.log(e.target)
e.target.blur()}}
/>
</div>,
document.getElementById('container')
);
1 回答
这是因为
antd
在处理程序之后重新聚焦它 . 您可以在blur
处理程序上使用setTimeout
使其正确模糊 .但是使用
event.target
只能在输入键上工作,你必须在输入上使用ref
元素才能使它在按钮上工作 .查看示例here