Reactjs 在基于redux的应用程序中在何处生成uid
我正在构建一个react+redux应用程序,我很难决定在哪里为我的数据生成uid 为了简化事情,我将使用经典的todo应用程序示例来解释我的问题(我的应用程序要比这个复杂得多) 我目前有addTodo、selectTodos、updateSelectedTodos和deleteSelectedTodos的还原程序 在分派addTodo操作之前,我正在react组件中生成uid selectTodos将所选uid存储在状态中 updateSelectedTodos和deleteSelectedTodos将更新/删除状态为“selected”列表中列出的todos 现在我需要添加一个新操作“duplicateSelectedTodo”,但我不确定最好的方法。我需要为副本生成新的uid。 由于我无法直接在减速器中执行此操作,因此我想到了以下解决方案: -在“我的组件”中检索所选ID,生成新ID,并使用新ID数组发送副本 -相同,但包含todo的所有数据(可能有很多数据) -编写一个“addUid”中间件,它将在第一行触发,并为所有需要一些uid的操作生成uid 欢迎提供任何建议:)Reactjs 在基于redux的应用程序中在何处生成uid,reactjs,redux,uuid,Reactjs,Redux,Uuid,我正在构建一个react+redux应用程序,我很难决定在哪里为我的数据生成uid 为了简化事情,我将使用经典的todo应用程序示例来解释我的问题(我的应用程序要比这个复杂得多) 我目前有addTodo、selectTodos、updateSelectedTodos和deleteSelectedTodos的还原程序 在分派addTodo操作之前,我正在react组件中生成uid selectTodos将所选uid存储在状态中 updateSelectedTodos和deleteSelectedT
ps:像我现在这样在组件中生成uid对我来说不太合适…您应该在创建操作的过程中生成ID 如果您手工编写动作创建者,则可能是:
const addTodo=(文本)=>{
常量id=uuid();
返回{type:“todos/addTodo”,有效负载:{text,id}
}
如果您正在使用(我强烈推荐),它将如下所示:
const todoslice=createSlice({
名称:“待办事项”,
初始状态:[],
减速器:{
地址:{
减速器(状态、动作){
状态推送(动作有效载荷);
},
准备(文本){
常量id=uuid();
返回{payload:{text,id}};
}
}
}
})
您的数据库能否生成uuid
?@JosephD。我没有db,它是一个单页应用程序。我使用redux工具包和CreateSicle:)太棒了,谢谢!即使我几乎把这些文件从头到尾读了一遍,我还是没听懂。这就像文档作者假设您已经是Redux的专家,并且正在切换到toolkit:(实际上,是的,这就是RTK文档目前的编写方式——它们假设您已经熟悉如何手动使用Redux,并关注使用RTK时的差异。当前文档在中讨论了“准备回调”,以及。