相关疑难解决方法(0)

使用react-router-dom时如何避免“无法给功能组件提供引用”?

我有以下内容(使用Material UI)...

import React from "react";
import { NavLink } from "react-router-dom";
import Tabs from "@material-ui/core/Tabs";
import Tab from "@material-ui/core/Tab";
function LinkTab(link){
    return <Tab component={NavLink}
        to={link.link}
        label={link.label}
        value={link.link}
        key={link.link}
    />;
}
Run Code Online (Sandbox Code Playgroud)

在新版本中,这会导致以下警告...

警告:不能为功能组件提供参考。尝试访问此引用将失败。您是要使用React.forwardRef()吗?

检查的渲染方法ForwardRef。在NavLink中(由ForwardRef创建)

我尝试更改为...

function LinkTab(link){
    // See https://material-ui.com/guides/composition/#caveat-with-refs
    const MyLink = React.forwardRef((props, ref) => <NavLink {...props} ref={ref} />);
    return <Tab component={MyLink}
        to={link.link}
        label={link.label}
        value={link.link}
        key={link.link}
    />;
}
Run Code Online (Sandbox Code Playgroud)

但是我仍然得到警告。我该如何解决这个问题?

reactjs react-router material-ui

7
推荐指数
6
解决办法
1505
查看次数

标签 统计

material-ui ×1

react-router ×1

reactjs ×1