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

83 天前
 conankenan

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

728 次点击
所在节点    前端开发
2 条回复
Wetoria
83 天前
你说的 setState 是虚拟组件内部的,还是自己定义的。
Baymaxbowen
83 天前
你的输入组件受控直接改变 targetvalue 没有用,你的方向应该是在触发系统键盘时页面要整体上移

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1071876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX