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

React路由器中的传递状态

袁鸿畅
2023-03-14

所以我面临的问题是,当我点击Hover Books组件中的链接进入一个新页面时,我可以在其中呈现图书状态,但当我按下它时,什么也没有发生。我知道错误可能在哪里(路由)。如果你能帮我修好它,我将不胜感激。谢谢

function App() {
  return (
    <div className="App">
      <Router>
        <Switch>
        <Route path='/book:/book.Key'>
         <Book />
        </Route> 
        <Route path='/signin'>
         <Signin />
        </Route> 
         <Route path='/'>
         <Header />
         <Home />      
        </Route> 
        </Switch>
      </Router>
   
    </div>
  );
}

export default App;

import React from 'react'
import {useLocation
  } from "react-router-dom";
const Book = () => {
    const { state: { book } } = useLocation();
    console.log({ book});
    return (
        <div key={book.key}>
         <h1>{book.bookName}</h1>
        </div>
    )
}

export default Book


const HoverBooks = ({...book}) => {
    const[inHoverBooks , setInHoverBooks]= React.useState(false)
    return (
        <>
            <Link to={{pathName:`/book/${book.key}`,
            state:{
            book,
            },}}>
            <img
            onMouseLeave={() => setInHoverBooks(false)}
            onMouseEnter={() => setInHoverBooks(true)}
            src={book.image}
            key={book.key} />         
            </Link>                
            {inHoverBooks && 
              <div className="hover__containter">
                <h3>{book.bookName}</h3> 
                <h2>{book.by}</h2>
                <h2>{book.Narreted}</h2>
                <h2>{book.length}</h2>
                <h2>{book.rating}</h2>
              </div>
          }
           
        </>
    )
}
export default HoverBooks

共有1个答案

宰烈
2023-03-14

使用react router,您需要将要呈现的组件传递给route,如下所示

const ComponentA = (props) => {...}

<Route path="/component-a" component={ComponentA} />

下面是如何链接到组件a

<Link to="/component-a" >Go to component A</Link>
 类似资料:
  • 我对反应和试图理解如何传递道具很陌生。 首先,我设置了一个Navlink组件,该组件包含子类别属性: ,,都是从json文件中获取的,所以这部分是可以的。 每条路线的定义如下: 所以它呈现一个名为

  • 我正在使用react with react路由器。我正试图在react路由器的“链接”中传递属性 “链接”呈现页面,但不将属性传递给新视图。下面是查看代码 如何使用“链接”传递数据?

  • 如果我将路由折叠起来,这样看起来就像: 工作很好。我嵌套的原因是因为我将在“dashboard”下有多个子项,并且希望它们都在URL中以为前缀。

  • 反应路由器:链接和路由不传递状态到组件 我正在用React、Redux和React路由器构建一个在线购物应用程序。在主页上,显示所有项目。我希望用户能够点击一个图像,并被带到一个页面,其中包含该项目的项目详细信息。 下面是我如何做到这一点的: 在App.js中,我使用BrowserRouter、Route和Switch进行路由 这看起来很简单,我在网上看到了很多关于这一点的讨论。以下是我已经尝试过

  • 我有一个模态,我想在其中放置一个动态嵌套视图。我认为这样做的一个好方法是像这样使用 我想把一些道具传给这些组件,就像我平时在React中一样 最终,我将移动到存储/获取状态中的这些属性,但是考虑到当前的实现,在定义开关

  • 使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re