如何在带有 Hooks 的 React Native 中使用 refs?
How to uses refs in React Native with Hooks?
我正在使用 Hooks 开发 React Native 应用程序。 (没有 类)。当我们使用 类 时,我们可以像这样创建一个子组件的 ref。
<Child ref={component => this.childComponent = component} />
但是,当我们使用 Hooks 时,如何做到这一点?
我想要这样的东西。
export default function Child() {
const foo = () => {
//do something
}
return(
//something
)
}
export default function Parent() {
const myFunc = () => {
ref.foo();
}
return(
<Child ref={.........} /> //This is what I want to know how to do?
)
}
希望你明白我想说的意思。
为了用钩子定义引用,你需要使用useRef
hook. And in order to apply ref to functional components you need to use forwardRef
and useImperativeHandle hook
function Child(props, ref) {
const foo = () => {
//do something
}
useImperativeHandle(ref, () => ({
foo
}));
return(
//something
)
}
export default React.forwardRef(Child)
export default function Parent() {
const childRef = useRef(null)
const myFunc = () => {
childRef.current.foo();
}
return(
<Child ref={childRef} />
)
}
我正在使用 Hooks 开发 React Native 应用程序。 (没有 类)。当我们使用 类 时,我们可以像这样创建一个子组件的 ref。
<Child ref={component => this.childComponent = component} />
但是,当我们使用 Hooks 时,如何做到这一点?
我想要这样的东西。
export default function Child() {
const foo = () => {
//do something
}
return(
//something
)
}
export default function Parent() {
const myFunc = () => {
ref.foo();
}
return(
<Child ref={.........} /> //This is what I want to know how to do?
)
}
希望你明白我想说的意思。
为了用钩子定义引用,你需要使用useRef
hook. And in order to apply ref to functional components you need to use forwardRef
and useImperativeHandle hook
function Child(props, ref) {
const foo = () => {
//do something
}
useImperativeHandle(ref, () => ({
foo
}));
return(
//something
)
}
export default React.forwardRef(Child)
export default function Parent() {
const childRef = useRef(null)
const myFunc = () => {
childRef.current.foo();
}
return(
<Child ref={childRef} />
)
}