我正在努力改变信仰
ReactNative official example
对于
useImperativeHandle
用打字稿
function FancyInput(props, ref) {
const inputRef = useRef();
useImperativeHandle(ref, () => ({
focus: () => {
inputRef.current.focus();
}
}));
return <input ref={inputRef} ... />;
}
FancyInput = forwardRef(FancyInput);
import React, { ReactElement, Ref, useRef, useImperativeHandle, forwardRef } from "react";
import { TextInput } from "react-native";
interface FancyInputProps {
name: string;
}
const FancyInput = (props: FancyInputProps, ref: Ref<TextInput>): ReactElement => {
const inputRef = useRef<TextInput>(null);
useImperativeHandle(ref, () => ({
focus: () => {
inputRef.current.focus();
},
}));
return <input ref={inputRef} />;
};
export default forwardRef(FancyInput);
但是
focus
由my IDE突出显示,并显示以下错误消息:
键入“{focus:()=>void;}”中缺少以下属性
键入“文本输入”:isFocused、clear、measure、measureInWindow和18
更多
因为
TextInput
确实有其他属性,但我只想添加一个(
集中
),不重写所有其他属性。
我有一种感觉,我不是那么远,任何帮助将非常感谢!