Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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 为什么每次我刷新页面时app.js都会调用构造函数?_Javascript_Reactjs - Fatal编程技术网

Javascript 为什么每次我刷新页面时app.js都会调用构造函数?

Javascript 为什么每次我刷新页面时app.js都会调用构造函数?,javascript,reactjs,Javascript,Reactjs,我是个新手,所以请容忍我 我正在将一个回调从App.js传递给一个子组件,然后子组件将信息发送回App.js,使用它设置App.js中的状态。但是,当我刷新页面时,App.js中的状态将恢复为其原始状态null。我意识到每次点击refresh时都会调用构造函数,所以更新的状态会被原始状态覆盖。为什么会发生这种情况,因为我认为构造函数只运行一次。如何解决此问题,以便即使导航到其他页面或刷新,更新的状态仍能保持 干杯 HTTP是无状态的,因此每次刷新页面时,都会为每个组件调用构造函数来设置初始状态。

我是个新手,所以请容忍我

我正在将一个回调从App.js传递给一个子组件,然后子组件将信息发送回App.js,使用它设置App.js中的状态。但是,当我刷新页面时,App.js中的状态将恢复为其原始状态null。我意识到每次点击refresh时都会调用构造函数,所以更新的状态会被原始状态覆盖。为什么会发生这种情况,因为我认为构造函数只运行一次。如何解决此问题,以便即使导航到其他页面或刷新,更新的状态仍能保持


干杯

HTTP是无状态的,因此每次刷新页面时,都会为每个组件调用构造函数来设置初始状态。要在页面重新加载时保留信息,可以使用在浏览器中存储信息的。除非特别清除,否则本地存储会在页面会话中持续存在。会话存储一直持续到会话结束

要存储项目,请执行以下操作:

阅读项目:

要清除项目,请执行以下操作:

请注意,这些项存储为字符串,因此您应该将其他数据类型转换为字符串,如下所示:

//store object
localStorage.setItem('object', JSON.stringify(myObject));

//read object
let myObject = JSON.parse(localStorage.getItem('object'));
let data = localStorage.getItem('foo');
// remove item with key 'foo'
localStorage.removeItem('foo');

//remove all items
localStorage.clear();
//store object
localStorage.setItem('object', JSON.stringify(myObject));

//read object
let myObject = JSON.parse(localStorage.getItem('object'));