简介
当点击按钮跳转到新Modal
或新Page
上有文本框时,有时会希望可以在新页面加载完后输入框自动获得焦点,并唤起键盘。TextInput
本身有autoFocus
属性,可以在组件加载完成后获得焦点,但是键盘并不一定会弹出。
解决方案
- 取消
textInput
的autoFoucs
- 获得要定位的
TextInput
的ref
- 在
componentDidMount
函数中调用setTimeout
方法,延时20ms-100ms
,个别机型需要延时大一些,函数内执行ref.focus()
- 如果是
Modal
,验证是否每次打开都会执行componentDidMount
,也就是每次Modal
关闭时内容是否会被销毁。如果不是,则可以在Modal
的onShow
属性上延时调用focus()
方法
有用的话记得点个赞哦~