Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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/9/ios/106.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
Reactjs 如何在从地址栏手动更改哈希时保持状态?_Reactjs_React Router - Fatal编程技术网

Reactjs 如何在从地址栏手动更改哈希时保持状态?

Reactjs 如何在从地址栏手动更改哈希时保持状态?,reactjs,react-router,Reactjs,React Router,当从地址栏手动更改哈希值时,我试图保持页面状态。 代码非常简单,有两条路线。 第一条路线有一个按钮,用于向状态添加随机文本。 第二条路径显示状态中的文本。 奇怪的是,当控制台在手动更改散列时打开(Ctrl+Shift+I或Ctrl+Shift+J)时,状态保持不变。(预期行为) 我没有在控制台上键入任何内容。我刚打开它。 当我关闭控制台并手动更改哈希值时,状态将丢失。(实际行为) 例如,我知道有很多方法可以将其存储在localStorage中,但目前我正试图避免使用。 实际上,我正试图

当从地址栏手动更改哈希值时,我试图保持页面状态。

代码非常简单,有两条路线。
第一条路线有一个按钮,用于向状态添加随机文本。
第二条路径显示状态中的文本。

奇怪的是,当控制台在手动更改散列时打开(
Ctrl+Shift+I
Ctrl+Shift+J
)时,状态保持不变。(预期行为)

我没有在控制台上键入任何内容。我刚打开它。

当我关闭控制台并手动更改哈希值时,状态将丢失。(实际行为)

例如,我知道有很多方法可以将其存储在localStorage中,但目前我正试图避免使用。


实际上,我正试图理解它是如何像预期的那样工作的,因为控制台是打开的。

发生这种情况的原因是,在不重新加载页面的情况下,无法手动更新url的哈希(即在url栏中)。当您通过控制台更改散列时,您是在使用js以编程方式(而不是手动)更改散列,这是在不重新加载页面的情况下更改散列的唯一方法。当您在url栏中键入哈希并按enter键时,页面将重新加载,这意味着您的应用程序将重新加载,您的状态将重置。

我没有在控制台中键入任何内容。我刚打开。然后,我手动更改了地址栏中的哈希值,它按预期工作。是的,您可以在不重新加载页面的情况下更新哈希值。