reactjs - 将值传递给道具 - 反应
问题描述
我有一个名为 ArticlePage 的函数组件,其中 match 作为道具
const ArticlePage = ({ match }) => {
const name = match.params.name;
const article = articleContent.find(article => article.name === name);
if (!article) return <h1>Article does not exist!</h1>
return (
<>
<h1>{article.title}</h1>
{article.content.map((paragraph, key) => (
<p key={key}>{paragraph}</p>
))}
</>
);
}
在 App.js 内部,我在没有传递数据的情况下调用了函数组件(考虑到这些事情,我有 2 个问题。
<Route path = "/article/:name" component = {ArticlePage} />
- 在这行代码中解构的目的是什么
const ArticlePage = ({ match }) => {
,根据我的理解,以某种方式传递给道具的值是 /article/:name,我不认为这个 url 参数是数组或对象。 - 传递给 ArticlePage 属性的值是什么?如果是 url 参数:/article/:name,怎么做?为什么数据的传递看起来不像
<Route path = "/article/:name" component = {ArticlePage(/article/:name)} />
是一个正常的函数
解决方案
React Router 文档回答了你的问题。Route
组件会自动将 prop 传递给您match
提供的任何组件。该match
道具包含有关用户当前 URL 如何与提供的路径匹配的详细信息。
由于您提供的路径包含name
作为 URL 参数,因此 的值name
将match
作为match.params.name
.
推荐阅读
- javascript - 通过具有特殊字符的括号表示法向 JS 对象添加字段
- arrays - 我在 python 中的 for 循环和输入遇到问题
- html - 按下 Edge 上的提交按钮时,表格标题的 CSS 有时会消失
- regex - 使用 google sheet 或 excel 公式从字符串中删除除数字和字母之外的所有内容
- typescript - Ant design Table dataIndex不适用于搜索选项时
- javascript - 触发一次后事件不会重新触发?
- flutter - NeverScrollableScrollPhysics() 无法正常工作,需要有关选项卡填充/边距的建议
- python - Cloudwatch 警报,用于将 Aurora 数据自动转储到 S3 存储桶
- python - Python 无法在 Raspberry Pi 上编译
- python - 从用户获取输入并将其粘贴到命令提示符 | Python