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

React中如何向已带参数的函数组件传值并获取子组件返回值

问题核心

你现在写的CommaFunc不是React组件,只是onChange事件里调用的普通工具函数,这种场景不需要用props传值,直接让函数返回目标值就能拿到内部的realOutput,实现最简单。

具体实现

修改CommaFunc,返回要回传的值

// commaFunc.js
export default function(e) {
    let realOutput = 100;
    // 保留你原本针对event对象的所有处理逻辑
    return realOutput;
}

父组件调用时接收返回值

在父组件里加个state存回传的值,后续渲染、参与计算都可以直接用:

// AddCommaToNumber.js
import React, { useState } from 'react';
import CommaFunc from './commaFunc'; // 补全对应文件导入路径

function AddCommaToNumber() {
  const [value, setValue] = useState("");
  // 新增state存储回传的realOutput
  const [realOutput, setRealOutput] = useState(null);

  return (
    <div>
      <input
        value={value}
        onChange={(e) => { 
          const outputVal = CommaFunc(e);
          setRealOutput(outputVal); // 拿到值后存入父组件状态
          setValue(e.target.value); 
        }}
        type="text"
      />
      {/* 直接使用回传值 */}
      <p>回传的realOutput:{realOutput}</p>
    </div>
  );
}
补充说明

props传值的方案只适用于CommaFunc是真正的React组件(即通过<CommaFunc />这种JSX标签形式渲染在父组件中)的场景:父组件通过props传一个接收值的回调给子组件,子组件内部处理完realOutput后调用这个回调把值传出来。
按你当前的代码逻辑,CommaFunc只在输入事件触发时执行,没有独立渲染UI的需求,完全没必要改造成组件,用普通函数返回值的方案代码量最少、逻辑最清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 22:39:24