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

为何RegisterForm组件的props.periode始终取Card组件data首个元素值?

问题原因分析
  • 未给遍历的Cardi组件设置唯一key
    React渲染列表时依赖key识别不同组件实例。如果省略key或使用重复key,React会复用已有组件的DOM节点和实例,不会重新初始化新的Cardi及其内部的RegisterForm组件,导致后续RegisterForm的props.periode未更新,始终保留第一个组件的初始值。

  • RegisterForm内表单控件的id/name属性重复
    如果RegisterForm里存储periode的表单元素(比如隐藏输入框)使用固定的id或name(例如<input type="hidden" name="periode" value={props.periode} />),多个Cardi渲染出的表单会包含相同标识的元素。浏览器提交表单时只会读取第一个匹配标识的元素值,因此始终拿到第一个item的periode。

  • 共享状态或闭包引用错误
    若在父组件或Cardi组件中,将periode存入共享状态变量,或是绑定提交事件时未正确捕获当前item的periode(比如使用未被块级作用域绑定的变量),会导致所有RegisterForm的提交逻辑都引用同一个过时的periode值,最终表现为始终获取第一个元素的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:29:54