我是React / Redux的新手,我可以使用您的建议来了解如何在我的反应应用程序中构建以下数据模型。
我有以下型号:
Users
Skills (id, title)
UserSkills (user_id, skill_id)
我想创建一个显示用户技能的组件,我将从我的API /user_skills
获得该组件将返回(user_id,skill_id)。
我应该更新我的API以包含我需要渲染组件的额外字段,例如Skill.title,或者我应该以某种方式使用Redux,还将Skills存储在Redux存储中,并且让UserSkills以某种方式找到Skill.Title来自Redux商店,如果它不存在,去获取标题?我怎样才能在Redux中最好地构建它?我该如何开始?
答案 0 :(得分:1)
关键词是"标准化"。完成状态标准化后,您需要根据skill_id
函数中的mapStateToProps
查找正确的技能条目。
有关详细信息,请参阅Redux Many to Many Relationship,Redux: Normalizing Global State和https://github.com/markerikson/react-redux-links/blob/master/redux-techniques.md#selectors-and-normalization以获取更多信息。
答案 1 :(得分:0)
所以我将首先回答你的第一个问题。
我应该更新我的API以包含我需要渲染组件的额外字段,如Skill.title吗?
是的,你应该。将您的API更改为,当您提供用户ID时,它应该返回该用户特有的所有技能。您的API应该类似 api / user_skills /:id
现在您已经更改了API,转而使用Redux。 Redux的工作方式是您调度某个操作,并针对每个操作,我们有一个 reducer ,它会更新您的商店并且相关组件正在侦听通过 react-redux 库提供的 connect 方法更改商店。
因此,我将通过强调整体流程来结束。在您的React组件中,您将调度操作(操作可以发出AJAX请求),针对每个操作,您将编写一个将更新应用程序商店的reducer。在每个成功的AJAX请求中,商店将被更新,并且已经订阅商店的组件将重新呈现,因为整个商店将通过道具提供给他们。
希望我能回答你的问题:)