【发布时间】:2020-08-27 19:25:45
【问题描述】:
我只是尝试将 forwardRef 与这样的 withRouter(mycomponent) 一起使用:
export default function App() {
const childRef = useRef();
const childWithRouteRef = useRef();
useEffect(()=>{
console.log("childWithRouteRef",childWithRouteRef);
childRef.current.say();
childWithRouteRef.current.say();
})
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<BrowserRouter>
<Child ref={childRef}/>
<ChildWithRoute_ ref={childWithRouteRef}/>
</BrowserRouter>
</div>
);
}
const Child = forwardRef((props, ref) => {
useImperativeHandle(ref, () => ({
say: () => {
console.log("hello")
},
}));
return <div>Child</div>
})
const ChildWithRoute = forwardRef((props, ref) => {
useImperativeHandle(ref, () => ({
say: () => {
console.log("hello")
},
}));
return <div>ChildWithRoute</div>
})
const ChildWithRoute_ = withRouter(ChildWithRoute)
如果我将组件包装在 withRouter HOC 中,则 ref 将不起作用,它始终为 null。那么如何将 forwardRef 与包装在 withRouter 中的组件一起使用?
【问题讨论】:
标签: reactjs react-router react-forwardref react-hoc