繁体   English   中英

我该如何重新聚焦<textinput>事件之后?</textinput>

[英]How do I refocus a <TextInput> after an event?

当屏幕加载时,我使用以下代码来关注一个:

useEffect(() => {
  InteractionManager.runAfterInteractions(() => {
    if (refText.current) {
      refText.current.focus();
    }
  });
}, []);

这按预期工作。 但是,在提交事件上,需要再次关注。

function myEvent() {
  if (refText.current) {
    refText.current.focus();
  }
}

此处不再关注正文。 有任何想法吗?

实际上,我不知道为什么您需要在提交处理程序中使用if语句来将焦点设置在TextInput上,但无论如何,我假设您的Button声明中有一个事件处理程序。 例如:

function App() {
  const textRef = useRef();

  const handleSubmit = () => {
    if (textRef.current) textRef.current.focus();
  };

  return (
    <View>
      <TextInput placeholder="Input" ref={textRef}/>
      <Button title="Submit" onPress={handleSubmit} />
    </View>
  );
}
});

正如您在这个Sandbox中看到的那样,它工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM