2017-07-10 34 views
0

我正在为用户创建表单构建器来创建问题。每个问题可以有无数的子问题,我想将数据保存到localStorage。双向数据绑定将窗体状态嵌套到React中的localStorage中

由于localStorage存储JSON,根据表单中每个问题/子问题的状态动态更新localStorage的最佳方法是什么?有没有办法采取反应单向数据流的原则,并使其状态与本地存储并行运行?

回答

0

我想你可以在容器级别的表单组件中定义一个状态变量,并且每当存在对表单的更新时调用localStorage.set('MY_QUESTIONS',questionsObj),以便localStorage对象与状态同步变量。使用的应用程序层上lodash的_.set方法,并把每个表单输入映射到它的路径密钥

handleQuestionsUpdate() { 
    this.setState({ 
     formQuestions: newQuestions 
    },() => { 
     localStorage.setItem('MY_QUESTIONS', this.state.formQuestions) 
    }); 
} 
+0

我结束了:

例如,你可以把它在每一个状态变化的回调在树中的位置 – nzoLogic