Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React中嵌套表单状态到localStorage的双向数据绑定_Javascript_Forms_Reactjs_Local Storage_State - Fatal编程技术网

Javascript React中嵌套表单状态到localStorage的双向数据绑定

Javascript React中嵌套表单状态到localStorage的双向数据绑定,javascript,forms,reactjs,local-storage,state,Javascript,Forms,Reactjs,Local Storage,State,我正在创建一个表单生成器,供用户创建问题。每个问题可以有无限多个子问题,我想将数据保存到localStorage 由于localStorage存储JSON,基于表单中每个问题/子问题的状态动态更新localStorage的最佳方法是什么?是否有一种方法可以采用Reacts单向数据流原理,并使其状态与本地存储并行运行 我认为您可以在容器级别的表单组件中定义一个状态变量,并在表单更新时调用localStorage.set('MY_QUESTIONS',questionsObj),以便localSto

我正在创建一个表单生成器,供用户创建问题。每个问题可以有无限多个子问题,我想将数据保存到localStorage


由于localStorage存储JSON,基于表单中每个问题/子问题的状态动态更新localStorage的最佳方法是什么?是否有一种方法可以采用Reacts单向数据流原理,并使其状态与本地存储并行运行

我认为您可以在容器级别的表单组件中定义一个状态变量,并在表单更新时调用localStorage.set('MY_QUESTIONS',questionsObj),以便localStorage对象与状态变量同步

例如,您可以在每次状态更改的回调中调用它:

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

最后,我在应用层上使用了lodash的uz.set方法,并向每个表单输入传递一个路径键,该路径键映射到它在树中的位置