React模拟数据输入
做这个功能的时候是要通过编写一个脚本一样的东西,执行一连串的点击,输入操作,但是直接获取输入框,设置value是没有改变react输入框里的状态值,点击搜索后依旧不会获取到值,并且情况输入的值。
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
let input = document.querySelector(".space-search-panel input");
let lastValue = input.value;
input.value = 5;
let event = new Event('input', { bubbles: true });
// react支持的事件 https://reactjs.org/docs/events.html#supported-events
// hack React15
event.simulated = true;
// hack React16 内部定义了descriptor拦截value,此处重置状态
let tracker = input._valueTracker;
if (tracker) {
tracker.setValue(lastValue);
}
input.dispatchEvent(event);
这样改变输入框中的值后,在触发搜索点击事件就可以了。