reactjs - 在 React 中使用 url 中的 id 打开特定数据
问题描述
我正在尝试打开新页面,当用户单击“阅读更多”按钮时,该页面会显示更多数据详细信息。
这是显示在主页上的组件,当用户单击它时,会出现 Read More 按钮,它会打开一个新页面,其中包含该组件的更多详细信息。
import React from 'react';
import {
Link
} from "react-router-dom";
export default function Code(props) {
const {desc, type, id } = props;
return (
<>
<div className='box'>
<h2 className='is-size-4'>{desc}</h2>
<div className='detail'>
<Link to={`code/${id}`} className='button btn'>
<i className='fas fa-chevron-right'></i> Read More
</Link>
<div className='is-size-6 has-text-weight-medium tag'>Type: {type}</div>
</div>
</div>
</>
)
}
这是 URL “http://localhost:3000/code/1”
我添加了一些静态数据,仅用于 UI,
import React, { useContext } from 'react';
import Navbar1 from '../layouts/navbar1';
import { GlobalContext } from '../context/StateManager';
export default function CodeDetail() {
const { deleteCode } = useContext(GlobalContext);
return (
<div>
<Navbar1/>
<div className='section'>
<div className='container'>
<div className='box'>
<div className='title'>Grapes</div>
<pre>
font-family: Consolas,"courier new";
color: crimson;
background-color: #f1f1f1;
padding: 2px;
font-size: 105%;
</pre>
<div className='del-edit'>
<div className='button is-danger' onClick={deleteCode}>Delete</div>
<div className='button is-warning'>Edit</div>
</div>
</div>
</div>
</div>
</div>
)
}
解决方案
您需要配置类似于以下代码段的路线
<Switch>
<Route path="/" exact component={Home} />
<Route path="/code/:id" component={CodeDetail} />
</Switch>
如果您想将 props 传递给组件,请尝试使用 render 方法
<Route path="/code/:id" render={(props) => <CodeDetail {...props} data={someSliceOfState}} /> } />
推荐阅读
- sapui5 - SAP UI5:无法在 xml 中绑定控制器变量
- java - Java 对象转义窗口框架
- c++ - 拆分空白字符串的程序不起作用
- mysql - 在使用 MySQL 的 React Native 项目中,一段时间后我无法调用查询
- apache-kafka - 生产者是否与代理和模式注册表建立两个不同的连接?如果是,是 HTTP 连接吗?
- clojure - Clojure 是素数函数?
- python - 在运行时覆盖 __pycache__
- xaml - UWP - 使用单个打印命令打印多个 xaml 表
- python - python SQLite按值数组选择
- android - 无法从共享首选项中获取数组列表并出现错误