reactjs - 通过 ref 从父组件访问功能组件的方法
问题描述
有没有办法可以triggerFoo
从父级访问子级中的方法?这是我到目前为止的代码:
import React, {createRef} from 'react'
import ReactDOM from 'react-dom'
const Parent= () => {
let myRef = createRef()
return (
<>
<Test ref={(ref) => myRef = ref} />
<button onClick={() => myRef.triggerFoo()}>Click Me</button>
</>
)
}
const Child = React.forwardRef((props, ref) => {
const triggerFoo = () => console.log('Foo')
return <div>Testing</div>
})
单击该按钮当前不会触发任何操作。
我的代码中的一个条件是它必须在父组件中使用回调引用,因为这个问题是我试图解决的涉及第三方包的更大问题的一部分。
解决方案
更改了代码。
const Parent= () => {
let myRef = createRef()
const triggerFoo = () => console.log('Foo')
return (
<>
<Child ref={myRef} triggerFoo={triggerFoo}>Click</Child>
</>
)
}
const Child = forwardRef((props, ref) => {
return <button onClick={props.triggerFoo} ref={ref}>{props.children}</button>
})
推荐阅读
- python - 如何从 Json 中的响应中提取精确值?
- c++ - **如何解决 gmock void 签名**
- ios - 如何在Apple Watch的iOS通知中隐藏关闭按钮
- media-source - MediaSource 中的视频解码器配置无效
- python - 如何在引用相同元组的元组中存储函数?
- apollo - VueApollo CORS 请求失败
- html - 向页面添加更多部分后,CSS 动画变慢/未完成
- python - 如何在 python 中为在 tensorflow 中实现的模型创建混淆矩阵?
- c - 带有布尔的分段错误 - CS50 多个
- perl - 一个 perl 脚本许多“终端”(tmux 窗格)