我是 React Native 的初学者,正在尝试设计一个 OTP 输入框。打开屏幕时键盘未打开。第一个占位符自动对焦,但键盘未打开。我正在使用这个库。
设置
autoFocusOnLoad={false}
它在我这边工作。
解决方案:
const OTPContainer = () => {
const otpRef = useRef(null);
useEffect(() => {
setTimeout(() => otpRef.current.focusField(0), 250);
}, []);
return <OTPInputView ref={otpRef} autoFocusOnLoad={false}/>}
设定即可
自动焦点加载= {true}
它会完成你的工作,也会解决你的问题。 :)
如果键盘未在 Android 中打开,此解决方案:-
const OTPInputComponent = () => {
const otpInputRef = useRef(null);
const [clearInput, setClearInput] = useState(false);
const [enteredPin, setEnteredPin] = useState('');
useEffect(() => {
const timeout = setTimeout(() => {
otpInputRef.current.focusField(0);
}, 500);
return () => clearTimeout(timeout); // Clean up the timeout on unmount
}, []);
return (
<OTPInputView
ref={otpInputRef}
autoFocusOnLoad={false}
style={styles.otpStyle}
pinCount={4}
secureTextEntry={true}
clearInputs={clearInput}
codeInputFieldStyle={styles.underlineStyleBase}
codeInputHighlightStyle={styles.underlineStyleHighLighted}
code={enteredPin}
/>
);
};