首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React路由器DOM + Flowbite :链接问题

React路由器DOM + Flowbite :链接问题
EN

Stack Overflow用户
提问于 2022-06-02 18:08:01
回答 1查看 523关注 0票数 -1

我想在使用反应路由器DOM的同时使用花咬反应。我正试着建造一个肚脐。

代码语言:javascript
复制
import {Link, useLocation} from "react-router-dom";
import {Navbar} from "flowbite-react";
...
const location = useLocation();
...
<Link to="/page">
    <Navbar.Link active={location.pathname === "/page"}>
        Link
    </Navbar.Link>
</Link>

很管用,但我收到警告:

代码语言:javascript
复制
react-dom.development.js:86 Warning: validateDOMNesting(...): <a> cannot appear as a descendant of <a>.

我理解为什么会发生这种情况(因为LinkNavbar.Link都包含<a>),但我不知道如何修复这些警告。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-02 20:33:30

我在useLinkClickHandler的使用中找到了一个解决方案

代码语言:javascript
复制
import {useLinkClickHandler, useLocation} from "react-router-dom";
import {Navbar} from "flowbite-react";

export interface AppNavLinkProps {
    to: string;
    text: string;
}

export default function AppNavLink(props: AppNavLinkProps) {
    const location = useLocation();
    const clickHandler = useLinkClickHandler(props.to);
    
    return <span onClick={clickHandler}>
        <Navbar.Link href={props.to} active={location.pathname === props.to}>
            {props.text}
        </Navbar.Link>
    </span>;
}
...
<AppNavLink to="/page" text="Link" />

这样,我就可以摆脱Link,只保留Navbar.Link,但保留Link功能(单击链接时不要重新加载页面,而是使用History API)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72480583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档