当前位置: 首页 > 知识库问答 >
问题:

使用React Router链接使整个表行可点击

督德泽
2023-03-14
class Content extends Component{
  <HashRouter>
    <Route exact path="/list">
       <List *props are entered here*/>
     </Route>
     <Route exact path="/profile">
        <Profile foo = {this.foo} *props are entered here*/>
     </Route>
  </HashRouter>
}

在列表中,我有一个从状态映射出来的用户表。当我单击该链接时,foo函数获取用户id并将其传递给Profile,List组件将被Profile组件替换,显示选定的用户配置文件

<table>
 <thead>
  <tr >
    <th>User</th>
    <th>Link to profile</th>
  </tr>
 </thead>

 <tbody>
  {this.state.users.map((user, index) =>
   <tr key={index}>
     <td>{user.name}</td>
     <td><Link to="/profile" onClick={() => this.props.foo(user.id)}</Link></td>
   </tr>
   )}
 </tbody>
</table>

现在,单击中的链接显然有效,但我希望使整个行像可单击的

我尝试将onClick函数绑定到,但我不知道如何使它像 那样替换要配置文件的组件

编辑:根据雅各布·斯密特的评论,我设法使用withRouter使其工作

>

  • 我包括来自react-router-dom的withRouter

    导出默认wishrouter(列表)

  • 共有1个答案

    麹高义
    2023-03-14

    >

  • 将onClick事件置于

    在handleOnClick中,使用重定向链接到另一个页面,也可能需要传递道具来重定向。

    js lang-js prettyprint-override">handleOnClick = (userid) => {
          return <Redirect
          to={{
            pathname: "/profile",
            foo: userid
            
          }}
        />
        }

  •  类似资料:
    • 我使用的是Bootstrap,以下操作不起作用:

    • 问题内容: 我知道可以用CSS链接整个表单元格。 有没有办法将链接应用于整个表行? 问题答案: 我同意Matti的观点。使用一些简单的javascript会很容易。一个快速的jquery示例如下所示: 和 然后在您的CSS中

    • 我想让整个div/图都可以点击,但是我必须用Jquery来做,因为这是一个wordpress插件。目前,只有标题是可点击的,我不想转到标题激活href,我希望能够点击div/image上的任何地方,它应该转到链接。 您可以在这里看到链接https://elysian.dijestdesigns.com/voice/ 这是密码 我试着加了这个,但好像不起作用 我不是一个专业的编码器,所以在这里得到一

    • 我正在使用Vue,并且: 我如何才能使整行可点击,而不仅仅是具有路由器链接的按钮?

    • 问题内容: 我正在使用Bootstrap,但以下操作无效: 问题答案: 作者注一: 请查看下面的其他答案,尤其是那些不使用jquery的答案。 作者注二: 保留后代,但肯定在2019年采用了 错误的 方法。(在2017年甚至很糟糕) 您正在使用Bootstrap,这意味着您正在使用jQuery:^),因此一种实现方法是: 当然,您不必使用href或切换位置,您可以在点击处理程序函数中执行任何操作。

    • 问题内容: 我有一个数据表,每个单元格都是一个链接。我想允许用户单击表格单元格中的任何位置,并让他们点击链接。有时表单元格不止一行,但并非总是如此。我使用td{display:block}来获得覆盖大部分单元格的链接。当一行中有一个单元格为两行,而其他单元格只有一行时,一个衬板不会填满表格行的整个垂直空间。这是示例HTML,您可以在上看到它的运行方式: 问题答案: 您需要对CSS进行一些小的更改。