【发布时间】:2017-01-16 11:28:42
【问题描述】:
我创建了一个JSfiddle
在这个小提琴中,最初根据传递给组件的props 呈现一个复选框列表。
单击Re-render 按钮时,相同的组件会以不同的props 集呈现。
现在,请按照以下步骤操作-
- 加载jsfiddle
- 选中任何一个复选框(假设我选中了第二个和第三个复选框)
- 点击
Re-render按钮
即使在使用新的props 渲染组件后,您选中的复选框的状态仍然保持不变(仍然选中第 2 和第 3)
为什么会这样? 如何使用新的道具集重新渲染组件,以使复选框的状态不会持续存在。
【问题讨论】:
-
leo 已经回答了你的问题,但我鼓励你以反应哲学去研究这个例子 - 尝试将复选框重构为一个单独的组件,然后使用
this.setState管理checked属性。使用 if 语句有效但没有反应。举个例子:jsfiddle.net/jwm6k66c/1034 -
感谢@erik-sn 的提琴,我会采用这种方法。
标签: javascript reactjs checkbox