conankenan

求助!React 实现虚拟键盘后如何更新 Input 值的问题 跪求大佬解惑

  •  
  •   conankenan · Sep 11, 2024 · 1448 views
    This topic created in 648 days ago, the information mentioned may be changed or developed.

    本来是做的 React 传统 pc 端 web 应用,但是业务需求有进工厂用触摸屏的操作,场景变成了套壳 webview,因此所有的输入框都会唤起原生的安卓键盘直接挡住大部分屏幕内容,领导和安卓人员沟通无果,提出禁用安卓键盘弹出,让我搞个页面上的虚拟键盘点击输入,目前使用的 react-simple-keyboard,现在的问题是我在顶层组件监听全局聚焦事件 document.addEventListener('focusin', handleFocus) 然后唤出虚拟键盘组件,通过 event.target.value 更新值,但是因为 React 在管理状态,没办法调用到 setState 或者说 Form.setFields,所以通过 target.value 改了值以后,下次触发 React 更新直接会把值重置,求解怎么更新状态呀!!!当然如果直接把键盘组件写到每个业务表单代码同级上下文就没这些问题,可是这么多页面这么多表单组件不可能一个个去绑定吧 求助!!

    2 replies    2024-09-11 12:25:28 +08:00
    Wetoria
        1
    Wetoria  
       Sep 11, 2024
    你说的 setState 是虚拟组件内部的,还是自己定义的。
    Yishanshan
        2
    Yishanshan  
       Sep 11, 2024 via iPhone
    你的输入组件受控直接改变 targetvalue 没有用,你的方向应该是在触发系统键盘时页面要整体上移
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2550 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 10:00 · PVG 18:00 · LAX 03:00 · JFK 06:00
    ♥ Do have faith in what you're doing.