如何在链接中使用useRef
import {Link} from 'react-router-dom';
const myLink = useRef<Link>(null);
...
myLink.current.click()
...
<Link to={{pathname: '/terms'}} id='myLink' ref={myLink} />
我得到的错误是Property 'click' does not exist on type 'Link<any>'.ts(2339)
我目前正在使用以下内容,但我想转到useRef
const myLink = document.getElementById('myLink');
if (myLink) myLink.click();
答案 0 :(得分:1)
正如打字错误所指出的那样,Link
组件不能像锚点那样简单地被单击。有两种提议的解决方案。
将链接更改为<a href="...">
,并在HTMLAnchorElement
中使用useRef
类型。
或者,如果您想继续使用Link
中的react-router-dom
组件,则可以访问链接组件的props
。
if (myLink.current) {
window.location.assign(myLink.current.props.to.toString()); // redirect to the to prop on Link component
}