哈兰德
ST · 评分 91
挪威 · 曼城
第 19 课每张卡内部 `useState(isSelected)` —— 信息散在 22 个小脑子里 · 教练拼不出 11 人。今天把 isSelected 升到父组件 fantasy/page.tsx。`useState<Player[]>([])` 在最顶 · 22 张卡都看同一份板 · 左右两边自动同步。Phase 2 的分水岭:状态提升。
11 人数据放父组件 · 22 张卡只是被画的对象。
球员卡只问教练「我画上了吗」(isSelected prop)+ 告诉教练「我被点了」(onToggle prop)。
加 = [...squad, p] · 删 = .filter · 改 = .map · 清空 = []
...(三个点)= 展开 / spread · 把数组里所有东西一个一个铺开。新数组 = 旧的所有 + 新这个。
抄着用 · Step 8 看到左右同步金边那一刻是今天的「哇」。
和 /fantasy 同一个逻辑 · 上限改 5 让你快速看「满了」拦人。
0 / 5
ST · 评分 91
挪威 · 曼城
LW · 评分 87
英国 · 曼城
CM · 评分 90
西班牙 · 曼城
CM · 评分 88
比利时 · 曼城
CB · 评分 84
瑞士 · 曼城
GK · 评分 88
巴西 · 曼城
LW · 评分 82
比利时 · 曼城
CM · 评分 86
葡萄牙 · 曼城
CB · 评分 81
荷兰 · 曼城
CB · 评分 85
葡萄牙 · 曼城
CB · 评分 84
克罗地亚 · 曼城
左边点 5 个进来。点右边的卡 = 踢出阵容。
提示:state 在 FormationSandbox 顶部的 useState<Player[]> · errors / isComplete 全部派生(无 useState)。
做完一步就点 ✓。Step 8 左右同步金边那一下是今天的「哇」。
第 1 题答得出 = 状态提升真懂了。
信息分散在 22 个小脑子里 · 教练拼不出全局 —— 11 人数据要在一个地方。
父组件 fantasy/page.tsx —— 22 张卡都要看同一份名单。教练手里那张大战术板。
直接改 React 不知道。和 19 课 count = count + 1 一个道理 · 必须通过 setter 通知。比喻:不在原板上画 · 拿一张新板。
addPlayer 第一行 if 拦了。教练第一条规则:满了不收。第 22 课会让规则大声说话(红字提示)。
说真话。爸爸会看到。
还有 12 步没打勾。Step 8 看到左右同步金边那一下今天就过 —— 剩下改天补。