Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在html按钮中包装react路由器链接_Html_Reactjs_Button_Hyperlink_Router - Fatal编程技术网

在html按钮中包装react路由器链接

在html按钮中包装react路由器链接,html,reactjs,button,hyperlink,router,Html,Reactjs,Button,Hyperlink,Router,使用建议的方法: , 我想知道是否有一种方法可以使用react将'react-router'中的链接元素包装到HTML按钮标记中 我目前有Link组件在我的应用程序中导航页面,但我想将该功能映射到我的HTML按钮 为什么不用与按钮相同的css装饰链接标签呢 <Link className="btn btn-pink" role="button" to="/" onClick={this.handleClick()} > Button1 </Link>

使用建议的方法: ,

我想知道是否有一种方法可以使用react将
'react-router'
中的
链接
元素包装到HTML
按钮
标记中

我目前有
Link
组件在我的应用程序中导航页面,但我想将该功能映射到我的HTML按钮


为什么不用与按钮相同的css装饰链接标签呢

<Link 
 className="btn btn-pink"
 role="button"
 to="/"
 onClick={this.handleClick()}
> 
 Button1
</Link>

按钮1

⚠️ 不,

虽然这将在web浏览器中呈现,但请注意:
⚠️ ⚠️. 如果您想将html语义保留给屏幕阅读器,请使用另一种方法

以相反的方式进行包装,您将获得带有链接的原始按钮。不需要CSS更改

 <Link to="/dashboard">
     <button type="button">
          Click Me!
     </button>
 </Link>

点击我!
这里的按钮是HTML按钮。它也适用于从第三方库导入的组件,如语义UI React

 import { Button } from 'semantic-ui-react'
 ... 
 <Link to="/dashboard">
     <Button style={myStyle}>
        <p>Click Me!</p>
     </Button>
 </Link>
从“语义ui反应”导入{Button}
... 
点击我

LinkButton
组件-React路由器v4的解决方案 首先,关于这个问题的许多其他答案的说明

⚠️ 嵌套
HOC将这些道具传递给组件:

  • 历史记录
  • 位置
  • 匹配
  • staticContext

LinkButton
组件 这里有一个
LinkButton
组件供您复制/编辑:

//文件:/components/LinkButton.jsx
从“React”导入React
从“道具类型”导入道具类型
从“react router”导入{withRouter}
常量链接按钮=(道具)=>{
常数{
历史
位置,
匹配,
静态上下文,
到
onClick,
// ⬆ 过滤掉“巴顿”不知道该怎么处理的道具。
休息
}=道具
返回(
{
onClick&&onClick(事件)
历史。推(到)
}}
/>
)
}
LinkButton.propTypes={
收件人:PropTypes.string.isRequired,
子项:PropTypes.node.isRequired
}
使用路由器导出默认值(链接按钮)
然后导入组件:

从“/components/LinkButton”导入链接按钮
使用组件:

按我的按钮!
如果需要onClick方法:

{
console.log('customevent here!',event)
}}
>按我的按钮!

更新:如果您正在寻找上述内容编写后提供的另一个有趣的选项,请查看此选项。

我使用路由器和