我在clojurescript中使用反应原生物在android上编写一个计时器应用程序(使用试剂希望不重要).
我有一个TextInput
地方,我接受用户的文字来命名计时器.每当我的计时器打勾,整个Android应用程序重新渲染,我就会失去焦点TextInput
.我目前正在使用onChangeText
保存我正在键入的字符,有没有办法在计时器滴答作响时保持对文本输入的关注?
谢谢.
最简单的解决方案是调用方法this.refs.yourTextInput.focus()
内部componentDidUpdate
.但是,这可能会导致键盘动画下来,然后再次动画.
问题的根源是您的计时器值和TextInput共享相同的范围,因此在更新状态时,计时器和TextInput都将通过该render
函数重新呈现.理想情况下,您可以:
将计时器文本放在自定义组件中,并在该自定义组件上添加方法以设置其自己的状态.只要自定义组件的状态是正在更新的状态,这将仅导致自定义组件重新呈现.