问题描述
在我的网络应用程序中,用户可以通过按 enter
来保存当前记录。
然后会显示一条消息,显示“记录已成功保存”。
由于其中一个输入框中闪烁的光标会影响“记录现在已保存”的印象,因此我希望应用程序在此时聚焦特定控件,例如“返回”按钮。
如何让 React 在重新渲染期间将焦点设置到元素上?如果我使用 someCreatedRef.current.focus()
命令,它应该在 setState
命令之前还是之后?
我已经尝试了所有可以在有关聚焦元素的文档中找到的方法,但没有一个对我有用:
- 大多数文章都讨论了首次安装组件时如何聚焦控件,但我想在调用
setState
后执行此操作。 - 其他文章介绍了如何使用引用来实现,特别是
createRef
和Ref callbacks
。我两者都尝试过,但似乎都不起作用,我怀疑这是因为这些用例没有调用 setState,所以组件没有重新渲染——它只是一个按钮或动作,导致不同的元素专注于相同的“渲染“…… - 也有一些文章谈到使用
autofocus
,但这对我来说似乎没有任何作用。
编辑:感谢 Ganesh Krishna,我可以破解它。 Here 是此解决方案的代码沙箱。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)