7

我正在使用 clojurescript 中的 android 上的 react native 编写计时器应用程序(希望使用试剂并不重要)。

我有一个TextInput接受用户文本来命名计时器的地方。每当我的计时器滴答作响时,整个 android 应用程序都会重新渲染,我失去了对TextInput. 我目前正在使用onChangeText保存我正在输入的字符,有没有办法在计时器滴答作响时将注意力集中在文本输入上?

谢谢。

4

1 回答 1

7

this.refs.yourTextInput.focus()最简单的解决方案是在方法内部调用componentDidUpdate。但是,这可能会导致键盘向下动画,然后再次向上动画。

问题的根源在于您的计时器值和您的 TextInput 共享相同的范围,因此当状态更新时,计时器和 TextInput 都通过该render函数重新呈现。理想情况下,您可以:

将您的计时器文本放入自定义组件中,并在该自定义组件上添加一个方法以设置其自己的状态。只要自定义组件的状态是正在更新的状态,这只会导致自定义组件重新渲染。

于 2015-12-12T23:18:31.393 回答