技巧分享
React 父子组件状态同步的回调模式实现
创建于 2026/7/15更新于 2026/7/15
React
State Management
Callback Pattern
技巧
## 问题描述
子组件(如 TaskBoard、TechDecisionPanel)更新了本地状态,但父组件(ProjectDetailClient)没有反映变化,导致 UI 不一致。
## 根本原因
父组件通过 props 传递初始数据,但子组件使用 useState 管理自己的状态,子组件的状态变化不会自动传递回父组件。
## 解决方案
实现回调式状态同步:
1. 父组件定义 onTasksUpdate/onDecisionsUpdate 回调函数
2. 通过 props 将回调传递给子组件
3. 子组件在状态变化时调用回调函数
4. 父组件收到回调后更新自己的状态
## 关键代码示例
```tsx
// Parent
const handleTasksUpdate = (updatedTasks) => {
setTasks(updatedTasks);
};
<TaskBoard tasks={tasks} onTasksUpdate={handleTasksUpdate} />
// Child
const updateTasks = (newTasks) => {
setTaskList(newTasks);
onTasksUpdate?.(newTasks);
};
```
关联知识资产
TIP
资产 ID: 5ad07fa8-c43b-4c77-a41d-cdae072118ce