React - 使用状态更新管理条件渲染
React - Manage conditionnal rendering with state update
我遇到了渲染问题。我有一个模态形式 create/edit 一个实体(存储在父状态列表中),我呈现与列表中每个实体对应的“卡片”列表。每张卡片上都有一个按钮,用于打开模态表单以编辑实体。问题是,我无法根据当前操作(添加/编辑)和当前对象重新呈现我的表单。
由于这个问题解释起来比较复杂,我重现了它:https://codesandbox.io/s/myzoo-cbpw8?file=/index.js:2688-2711
一旦我创建了一个实体,我就被编辑表单困住了,我无法重新呈现一个新表单。这意味着呈现一个新表单,然后将可见性状态设置为 true,但这是行不通的。
您对如何实现这一点有什么想法吗?
如果您对我的 codesandbox 有任何提示或最佳实践,请告诉我!
问题是您正试图通过一个可见性变量同时管理编辑和添加对话框,因此当您打开添加对话框时,它也会打开编辑对话框。
我认为也许最好呈现一个对话框,既用于编辑又用于添加,并在打开对话框后将要编辑的动物存储在变量中,或者存储 false/null 以备不时之需创建一个新动物。
我在这里做了一个例子https://codesandbox.io/s/myzoo-forked-7t9em?file=/index.js:177-198。我认为问题出在同一状态 isVisible
正在管理 2 个表单。
因此,当您打开任何表单时,将使用 add
操作调用组件 AnimalForm,然后使用 edit
操作。我们需要在一种情况下调用它。
所以,我只是做了一个小改动,每个表单都有一个变量 isVisible
。这样表格就独立打开了。
我遇到了渲染问题。我有一个模态形式 create/edit 一个实体(存储在父状态列表中),我呈现与列表中每个实体对应的“卡片”列表。每张卡片上都有一个按钮,用于打开模态表单以编辑实体。问题是,我无法根据当前操作(添加/编辑)和当前对象重新呈现我的表单。
由于这个问题解释起来比较复杂,我重现了它:https://codesandbox.io/s/myzoo-cbpw8?file=/index.js:2688-2711
一旦我创建了一个实体,我就被编辑表单困住了,我无法重新呈现一个新表单。这意味着呈现一个新表单,然后将可见性状态设置为 true,但这是行不通的。
您对如何实现这一点有什么想法吗?
如果您对我的 codesandbox 有任何提示或最佳实践,请告诉我!
问题是您正试图通过一个可见性变量同时管理编辑和添加对话框,因此当您打开添加对话框时,它也会打开编辑对话框。
我认为也许最好呈现一个对话框,既用于编辑又用于添加,并在打开对话框后将要编辑的动物存储在变量中,或者存储 false/null 以备不时之需创建一个新动物。
我在这里做了一个例子https://codesandbox.io/s/myzoo-forked-7t9em?file=/index.js:177-198。我认为问题出在同一状态 isVisible
正在管理 2 个表单。
因此,当您打开任何表单时,将使用 add
操作调用组件 AnimalForm,然后使用 edit
操作。我们需要在一种情况下调用它。
所以,我只是做了一个小改动,每个表单都有一个变量 isVisible
。这样表格就独立打开了。