当前位置:首页 > React

react如何传参

2026-02-11 20:04:40React

在React中传递参数的方法

父子组件间通过props传参

父组件通过props向子组件传递数据。子组件通过this.props(类组件)或直接解构props(函数组件)接收参数。

// 父组件
function Parent() {
  const data = "Hello from Parent";
  return <Child message={data} />;
}

// 子组件(函数组件)
function Child({ message }) {
  return <div>{message}</div>;
}

// 子组件(类组件)
class Child extends React.Component {
  render() {
    return <div>{this.props.message}</div>;
  }
}

子组件向父组件传参

通过将回调函数作为props传递给子组件,子组件调用该函数并传递参数。

react如何传参

// 父组件
function Parent() {
  const handleChildData = (data) => {
    console.log(data);
  };
  return <Child sendData={handleChildData} />;
}

// 子组件
function Child({ sendData }) {
  const data = "Data from Child";
  return <button onClick={() => sendData(data)}>Send</button>;
}

使用Context跨层级传参

适用于深层嵌套组件间的参数传递。

const MyContext = React.createContext();

// 提供者组件
function App() {
  return (
    <MyContext.Provider value="Shared Data">
      <Child />
    </MyContext.Provider>
  );
}

// 消费者组件
function Child() {
  return (
    <MyContext.Consumer>
      {value => <div>{value}</div>}
    </MyContext.Consumer>
  );
}

通过路由传参

使用react-router-dom进行页面间参数传递。

react如何传参

// 传递参数
<Link to="/user/123">User</Link>
// 或
<Link to={{ pathname: "/user", state: { id: 123 } }}>User</Link>

// 接收参数
function User() {
  // URL参数
  const { id } = useParams();
  // state参数
  const { state } = useLocation();
  return <div>User ID: {id || state?.id}</div>;
}

使用状态管理库传参

通过Redux或MobX等状态管理工具共享参数。

// Redux示例
// 定义action
const setData = (data) => ({ type: 'SET_DATA', payload: data });

// 组件中dispatch
dispatch(setData("Some data"));

// 组件中获取
const data = useSelector(state => state.data);

通过ref传参

使用ref直接访问组件实例或DOM元素。

function Parent() {
  const childRef = useRef();

  const handleClick = () => {
    childRef.current.doSomething("Data via ref");
  };

  return (
    <>
      <Child ref={childRef} />
      <button onClick={handleClick}>Call Child</button>
    </>
  );
}

// 子组件需要使用forwardRef
const Child = forwardRef((props, ref) => {
  useImperativeHandle(ref, () => ({
    doSomething: (data) => {
      console.log(data);
    }
  }));
  return <div>Child</div>;
});

标签: react
分享给朋友:

相关文章

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yarn…

react 如何运行

react 如何运行

运行 React 项目的步骤 安装 Node.js 确保系统已安装 Node.js(建议版本 16+),可通过官网下载并安装。安装后验证版本: node -v npm -v 创建 React 项目…

react如何重启

react如何重启

重启 React 应用的方法 重新加载当前页面 使用 window.location.reload() 强制刷新页面,这会重新加载整个应用并重置所有状态。 window.location.rel…

react 如何循环

react 如何循环

循环渲染列表 在React中,循环渲染列表通常使用map方法。map可以遍历数组并返回一个新的React元素数组。 const items = ['Apple', 'Banana', 'Orange…

react如何折叠

react如何折叠

在 React 中实现折叠功能 使用 useState 管理折叠状态 通过 useState 定义一个状态变量来控制折叠面板的显示与隐藏。例如: const [isCollapsed, setIsC…