【发布时间】:2021-05-07 08:28:03
【问题描述】:
我的数据库中目前有三个表。我有一个用户、医学和医学详细信息表。它们是这样关联的,med details 属于 Medicine,medicine 属于 user。
我目前正在使用 sequelized 调用我的数据库并获取用户和属于该用户的嵌套表。在 react 中,我需要 map 覆盖对象中的 Medicine 数组以取回所有药物名称,然后我想 map 覆盖 med 详细信息数组以获取服用时间。
<tbody>
{ user.Medicines && user.Medicines.length !== 0 && user.Medicines.map(item => {
console.log(item)
const medDeets = item.MedDeets
const medDeetMap = medDeets.map(deet => {
const time = deet.timeTaken
// setTime(time)
Issue here>? })
return (
<tr>
<td>{item.medicineName}</td>
<td> </td>
<td></td>
<td>{item.waitingPeriod} hours</td>
</tr>
)
// }
})}
</tbody>
如果我尝试从我的第二个 map 函数中移动 })(也显示在上面的代码中),我遇到了似乎是范围界定问题,并且无法再看到我的第一个 map 函数中的数据。如果我从第二个map 函数尝试setState,我会收到太多重新渲染错误。
目前是全栈开发计划的新毕业生,这是我第一次使用 Stackoverflow,如果我遗漏了一些明显的东西,我很抱歉。感谢您的帮助/反馈。
【问题讨论】:
-
每当你执行 setState 时,你的组件就会被渲染。所以如果你在 render 方法中直接写 setState 就会死循环。
-
尽量不要在jsx中做太多的内联逻辑。准备一个包含您要显示的数据的数组,然后将其映射到 jsx 中。也许准备应该放在
useMemo(),如果它很贵。
标签: javascript reactjs sequelize.js