【问题标题】:React Native Autofocus InputfieldReact Native 自动对焦输入框
【发布时间】:2021-09-16 14:57:00
【问题描述】:

在 react native 中执行 navigate.goBack() 后,我尝试专注于输入字段。

我看到了一些使用 Ref 的解决方案。我试过了,但这种类型的解决方案仍然不适合我?

import React, { useState, useEffect, useRef  } from 'react';

const textInput = useRef();

useEffect(() => {
    const unsubscribe = navigation.addListener('focus', () => {
      textInput.current.focus();   
      loadData()  
    });

    return unsubscribe;
  }, [navigation]);

<TextInput      
        ref={textInput}            
        value={text}
        placeholder="Your name"
        style={styles.textInput} />

如何在 React Native 中做到这一点? 我已经在谷歌和这个网站上搜索过它。但是所有的解决方案都不适合我。

谢谢!

【问题讨论】:

    标签: react-native react-hooks


    【解决方案1】:

    后处理

    useFocusEffect(()=>{
     if(textInput.current !==null){
      textInput.current.focus()
     }
    },[textInput.current])
    

    文本输入

    <TextInput                
       value={text}
       ref={textInput}
       placeholder="Your name"
       style={styles.textInput}
       autofocus
    />
    

    你去吧兄弟,别忘了从导航导入 useFocusEffect

    【讨论】:

    • 当我添加这个时,我收到以下错误:您将第二个参数传递给“useFocusEffect”,但它只接受一个参数。如果你想传递一个依赖数组,你可以使用'React.useCallback': useFocusEffect( React.useCallback(() => { // 你的代码在这里 }, [depA, depB]) );
    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 2022-08-16
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多