像使用 forwardRef实现父调子组件的方法,后来发现如果同时使用connect ,是调用不到
解决方法:connect 参数加上{forwardRef:true}
import React ,{useRef} from 'react'
import Son from './Son.js'
const father =()=>{
const ref = useRef()
return(<div onClick={()=>{
ref.current.test()
}}>{‘父调子方法’}
<Son ref={ref}></Son>
</div>)
}
export default father
import React ,{forwardRef,useImperativeHandle} from 'react'
import { connect } from "umi";
const Son =forwardRef((props,ref)=>{
useImperativeHandle(ref, () => {
return {
test: test,
}
})
})
const test =()=>{
console.log('11111111111')
}
export default connect(()=>({
}),null,null,{forwardRef:true}) (son)
*** 原因:ref被Hoc 高阶组件{connect} 阻断了***
网友评论