有没有办法单击 div 容器包装的 react-router 链接组件?

Posted

技术标签:

【中文标题】有没有办法单击 div 容器包装的 react-router 链接组件?【英文标题】:Is there a way to click div container wrapped react-router Link component? 【发布时间】:2021-10-20 20:03:14 【问题描述】:

我的 react 项目有问题,我试图在下面描述这个问题。我用 react-router Link 包装了所有组件。在代码的某些部分,我需要此链接进行导航,但我需要禁用链接组件进行导航并在其他地方使用带有 onClick 操作的内部 div。

<Link to=`/somewhere`>
  <div onClick=this.handleClick>
    ....some other div container...
  <div>
<Link>

我希望我解释了我的痛苦。等待您的答复。

【问题讨论】:

【参考方案1】:

Link内部的JSX提取到自己的组件中并有条件地渲染

// InnerComponent.jsx

const InnerComponent = (isLink, to) => 
   
   const handleClick = () => 
     // your onClick handler
   

   const InnerJsx = (
     <div onClick= isLink ? () =>  : handleClick  >
       ...Your JSX...
     </div>
   )
   
   return (
     isLink ? <Link to=to>InnerJsx</Link> : InnerJsx
   )


export default InnerComponent;

【讨论】:

感谢您的回答,我的代码正在运行。

以上是关于有没有办法单击 div 容器包装的 react-router 链接组件?的主要内容,如果未能解决你的问题,请参考以下文章

没有包装“行”容器的清理

有没有办法通过向父级添加内联样式来隐藏父级 div/容器内的所有 div?

我有一个相互重叠的 flex 包装 div 容器。这些可能是不同的高度并包裹多次。如何避免重叠?

用div包装链接组? (PHP是一个选项)

CSS:用底部对齐的文本包装一个浮动的 div

设置主弹性容器和嵌套弹性容器之间的包装优先级