You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React函数组件如何正确传递与接收props参数

React 组件自定义参数传参实现方案

你的需求完全可以实现,当前代码存在3处入门阶段常见的语法/逻辑错误,修正后即可正常运行。

现存问题说明

  • 函数组件参数接收逻辑错误:React函数组件的第一个入参是所有传入属性组成的props对象,不是单个参数值。你写的const Navbar = (index) => {}中,index实际拿到的是整个props集合对象,直接渲染页面会显示[object Object],拿不到传入的0值。
  • JSX传值语法错误:JSX中如果要传递字符串以外类型的值(数字、布尔、数组、对象、变量、表达式),必须用大括号包裹值。你写的<Navbar index=0 />不符合JSX语法,会直接编译报错,数字类型参数需要写成index={0}。
  • 组件定义语法错误:Home组件的箭头函数写法缺少赋值等号,const Home () => {}是非法语法,无法正常编译。

修正后可运行代码

import React from 'react';
// 推荐写法:直接解构props拿到需要的index参数
const Navbar = ({ index }) => {
  return(<div>{index}</div>)
}

// 不习惯解构的话也可以用下面的写法,效果完全一致
// const Navbar = (props) => {
//   return(<div>{props.index}</div>)
// }

export default Navbar;

Home 页面调用代码

import React from 'react';
import Navbar from '../../components/Navbar/Navbar.jsx';
// 补全箭头函数的赋值等号
const Home = () => {
  // 数字类型参数用大括号包裹传入
  return(<Navbar index={0} />)
}
export default Home;

补充使用提示

  • 如果要传递字符串类型参数,可以直接写属性值,不需要大括号,例如<Navbar title="首页导航" />
  • 多参数传递时直接在组件标签上追加属性即可,例如<Navbar index={0} theme="dark" />,组件内解构时写({ index, theme })就能拿到对应的值
  • 大括号内支持写任意合法JS表达式,比如你可以传变量、计算结果、函数等

内容的提问来源于stack exchange,提问作者stephen telian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:09:19