本来是做的 React 传统 pc 端 web 应用,但是业务需求有进工厂用触摸屏的操作,场景变成了套壳 webview,因此所有的输入框都会唤起原生的安卓键盘直接挡住大部分屏幕内容,领导和安卓人员沟通无果,提出禁用安卓键盘弹出,让我搞个页面上的虚拟键盘点击输入,目前使用的 react-simple-keyboard,现在的问题是我在顶层组件监听全局聚焦事件 document.addEventListener('focusin', handleFocus) 然后唤出虚拟键盘组件,通过 event.target.value 更新值,但是因为 React 在管理状态,没办法调用到 setState 或者说 Form.setFields,所以通过 target.value 改了值以后,下次触发 React 更新直接会把值重置,求解怎么更新状态呀!!!当然如果直接把键盘组件写到每个业务表单代码同级上下文就没这些问题,可是这么多页面这么多表单组件不可能一个个去绑定吧 求助!!
举报· 30 次点击
登录 注册 站外分享
2 条回复  
Wetoria 小成 2024-9-11 11:48:20
你说的 setState 是虚拟组件内部的,还是自己定义的。
Baymaxbowen 小成 2024-9-11 12:25:28
你的输入组件受控直接改变 targetvalue 没有用,你的方向应该是在触发系统键盘时页面要整体上移
返回顶部