如何在 React 中保存状态中的嵌套对象?
How to save a nested object in state in React?
是否有一种简单的方法来 save/update 整个对象模型的状态?每次更新对象 属性 时,我都想保存此架构的快照。我已经有其他组件可以更新架构属性(isComplete、进度),但我不知道如何将整个架构保存到状态,以便当我刷新时,所有进度仍然存在?
我想我需要一个带有 setSchema() 的 useEffect 挂钩,也许还需要一个传播运算符?我还没有数据库,所以我想暂时将更新后的模式存储在本地存储中。
import course from "./data/index";
const [schema, setschema] = useState(course);
useEffect(()=>{
setschema(???)
})
const course = {
courseName: "Course 1",
courseModules: [
{
moduleName: "Module1",
moduleLessons: [
{
lessonName: "Introduction",
lessonData: Lesson1,
isComplete: false,
progress: 0,
},
{
lessonName: "Overview",
lessonData: Lesson2,
isComplete: false,
progress: 0,
},
],
isComplete: false,
progress: 0,
},
{
moduleName: "Module 2",
moduleLessons: [
{
lessonName: "Lesson 1",
lessonData: "hello There",
isComplete: false,
progress: 0,
},
{
lessonName: "Lesson 2",
lessonData: "hello There",
isComplete: false,
progress: 0,
},
],
isComplete: false,
progress: 0,
},
],
isComplete: false,
progress: 0,
};
不确定我是否理解,但如果我理解正确的话,您想在每次更新时将 schema
保存到本地存储吗?
可以这样做:
useEffect(() => {
localStorage.setItem("schema", JSON.stringify(schema));
}, [schema]);
是否有一种简单的方法来 save/update 整个对象模型的状态?每次更新对象 属性 时,我都想保存此架构的快照。我已经有其他组件可以更新架构属性(isComplete、进度),但我不知道如何将整个架构保存到状态,以便当我刷新时,所有进度仍然存在?
我想我需要一个带有 setSchema() 的 useEffect 挂钩,也许还需要一个传播运算符?我还没有数据库,所以我想暂时将更新后的模式存储在本地存储中。
import course from "./data/index";
const [schema, setschema] = useState(course);
useEffect(()=>{
setschema(???)
})
const course = {
courseName: "Course 1",
courseModules: [
{
moduleName: "Module1",
moduleLessons: [
{
lessonName: "Introduction",
lessonData: Lesson1,
isComplete: false,
progress: 0,
},
{
lessonName: "Overview",
lessonData: Lesson2,
isComplete: false,
progress: 0,
},
],
isComplete: false,
progress: 0,
},
{
moduleName: "Module 2",
moduleLessons: [
{
lessonName: "Lesson 1",
lessonData: "hello There",
isComplete: false,
progress: 0,
},
{
lessonName: "Lesson 2",
lessonData: "hello There",
isComplete: false,
progress: 0,
},
],
isComplete: false,
progress: 0,
},
],
isComplete: false,
progress: 0,
};
不确定我是否理解,但如果我理解正确的话,您想在每次更新时将 schema
保存到本地存储吗?
可以这样做:
useEffect(() => {
localStorage.setItem("schema", JSON.stringify(schema));
}, [schema]);