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

React 18中如何在入口文件index.js中使用/获取props

React 18 中函数组件接收 props 的正确方式

React 18 里函数组件接收 props 的逻辑和之前版本完全一致,你之前的写法export default function main({props})其实是个误区——函数组件的第一个参数就是整个 props 对象,不需要额外解构{props}。

下面是具体的实现步骤:

1. 在组件中接收 props

有两种常用写法:

  • 直接接收完整的 props 对象:
// App.js
export default function App(props) {
  // 直接通过 props.xxx 访问属性
  return <div>传入的标题:{props.title}</div>;
}
  • 解构 props 中的特定属性(更简洁):
// App.js
export default function App({ title, desc }) {
  // 直接使用解构后的变量
  return (
    <div>
      <h1>{title}</h1>
      <p>{desc}</p>
    </div>
  );
}

2. 在根渲染时传递 props

回到你提供的样板代码,只需要在<App />标签中添加属性即可传递 props:

// index.js
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";

const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
  <React.StrictMode>
    {/* 这里传递 props */}
    <App title="React 18 Props 示例" desc="这是传递给App组件的描述内容" />
  </React.StrictMode>
);

reportWebVitals();

补充说明

如果你之前写的{props}是想把整个 props 对象作为一个属性传递,那正确的写法应该是<App props={xxx} />,但这是自定义属性,不是 React 原生的 props 传递方式,通常不推荐这么做——直接传递具体属性更清晰。

内容的提问来源于stack exchange,提问作者Sumair Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:07:05