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

React中如何将子组件点击的联系人fullName、ID等数据传递给上层父组件

实现子组件向父组件传值的核心逻辑是:父组件提前定义接收数据的回调函数,将该函数作为props传递给子组件;子组件触发对应事件时,调用该回调并把需要传递的数据作为参数传入。

修改父组件 MainContent

  • 新增状态存储选中的联系人数据用于父层展示,定义接收子组件数据的回调函数,将回调函数作为props传递给Contacts组件
// 父组件
import { useState } from 'react';
const MainContent = ({contacts,setcontacts}) => { 
  // 存储子组件传过来的选中联系人
  const [selectedContact, setSelectedContact] = useState({})

  // 接收子组件数据的回调方法
  const getSelectedContact = (contact) => {
    // 此处可对拿到的联系人数据做任意业务处理
    setSelectedContact(contact)
    // 如果需要修改contacts数组可直接调用setcontacts操作
  }

  return (
    <div>
       <p>{selectedContact.fullName}</p>
       <p>{selectedContact.phone}</p> 
       <p>{selectedContact.id}</p> 

      {/* 将回调函数传给子组件 */}
      <Contacts contacts={contacts} onSendContact={getSelectedContact}/>
    </div>
  );
};
export default MainContent;

修改子组件 Contacts

  • 接收父组件传的回调函数props,点击按钮时调用回调并传入当前遍历的联系人数据即可
// 子组件
const Contacts = ({contacts, onSendContact}) => {
  return (
    <div>
      {contacts.map((contact) => (
        <div key={contact.id}>
          <p>{contact.fullName}</p>
          <p>{contact.phone}</p>
          <div>
            {/* 点击时触发父组件回调,传入当前联系人的全量数据 */}
            <button onClick={() => onSendContact(contact)}>send</button>
          </div>
        </div>
      ))}
    </div>
  );
};

export default Contacts;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:27:03