React TypeScript:useRef链接

时间:2019-09-14 09:24:11

标签: reactjs typescript

如何在链接中使用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();

1 个答案:

答案 0 :(得分:1)

正如打字错误所指出的那样,Link组件不能像锚点那样简单地被单击。有两种提议的解决方案。

  1. 将链接更改为<a href="...">,并在HTMLAnchorElement中使用useRef类型。

  2. 或者,如果您想继续使用Link中的react-router-dom组件,则可以访问链接组件的props

if (myLink.current) {
    window.location.assign(myLink.current.props.to.toString()); // redirect to the to prop on Link component
}