V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
React
zty7723271
V2EX  ›  React

[求 React 大佬] 如何在浏览器控制台通过 JS 或 JQ 触发 React 的数据修改事件,并修改变量内容

  •  1
     
  •   zty7723271 · 11 天前 · 1040 次点击

    补充信息:

    1. 页面自然渲染完成后,DOM 事件只有 ReactEventListener.js 里的事件,这些方法在控制台没有办法直接调用触发
    2. DOM 是通过 jsonp 的方式渲染的虚拟 dom,各监听事件就是在 jsonp 返回的 js 方法里面与 ReactEventListener.js 里的事件进行绑定的
    3. 想要在控制台输入前端脚本做的事情是:"修改表单标签内容" -> "触发网站原有 dom 的 onchange 事件" -> "提交表单获取结果"。(再具体点就是:修改 input 的值 -> 触发 input 的 onchange 事件 -> 点击搜索按钮获取结果)
    4. 阻塞现象描述:可以修改 input 标签的内容,但仅仅修改只是在留在显示层面,提交表单后,还是会使用 input 标签修改前的值去获取结果
    8 条回复    2021-01-09 18:35:25 +08:00
    IGJacklove
        1
    IGJacklove   11 天前 via Android   ❤️ 1
    在 react 里面把事件绑定到 window 上?这样可以吗?
    weixiangzhe
        2
    weixiangzhe   11 天前   ❤️ 1
    之前我撸了个油猴的时候有找过,vue,react 事件都绑定到 dom 上了,需要自已触发一个事件

    ```js
    const mouseClickEvents = ['mousedown', 'click', 'mouseup'];
    function simulateMouseClick(element){
    mouseClickEvents.forEach(mouseEventType =>
    element.dispatchEvent(
    new MouseEvent(mouseEventType, {
    view: window,
    bubbles: true,
    cancelable: true,
    buttons: 1
    })
    )
    );
    }

    var element = document.querySelector('div[class="UFIInputContainer"]');
    simulateMouseClick(element);
    ```

    来自 https://stackoverflow.com/questions/40091000/simulate-click-event-on-react-element
    justin2018
        3
    justin2018   10 天前
    学习了 ~~~
    xiaojiqiaozhi
        4
    xiaojiqiaozhi   10 天前 via Android
    获取 input 的 ref,给 ref 加个 onchange 监听事件
    gouflv
        5
    gouflv   10 天前 via iPhone
    全局 event-bus
    zty7723271
        6
    zty7723271   10 天前
    @weixiangzhe 感谢!!!亲测可行,下周不用花 2 天时间重新做了
    yazoox
        7
    yazoox   10 天前
    牛🐮比唉。学习一下
    px920906
        8
    px920906   10 天前 via Android
    react developer tools 了解一下
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1456 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:37 · PVG 07:37 · LAX 15:37 · JFK 18:37
    ♥ Do have faith in what you're doing.