Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 流量在重新路由时初始化存储_Javascript_Reactjs_Flux_React Router - Fatal编程技术网

Javascript 流量在重新路由时初始化存储

Javascript 流量在重新路由时初始化存储,javascript,reactjs,flux,react-router,Javascript,Reactjs,Flux,React Router,所以在过去的几天里,我一直在使用Flux,更具体地说,我选择了altflux实现来解决这个问题。主要是因为它们处理服务器端渲染的方式,我认为这非常好。我也在使用React路由器(目前为1.0.0-beta3) 我在哪里用数据初始化我的存储有问题。我的应用程序使用服务器端呈现,因此当请求到达我的服务器时,我可以从API获取初始数据,并且根据用户输入的路径,我可以获取不同的数据。(这是正确的吗?对我来说似乎有点奇怪,因为SSR的目的是避免“空白白屏”,但现在我们必须等待异步回调,然后再发回服务器呈现

所以在过去的几天里,我一直在使用Flux,更具体地说,我选择了altflux实现来解决这个问题。主要是因为它们处理服务器端渲染的方式,我认为这非常好。我也在使用React路由器(目前为1.0.0-beta3)

我在哪里用数据初始化我的存储有问题。我的应用程序使用服务器端呈现,因此当请求到达我的服务器时,我可以从API获取初始数据,并且根据用户输入的路径,我可以获取不同的数据。(这是正确的吗?对我来说似乎有点奇怪,因为SSR的目的是避免“空白白屏”,但现在我们必须等待异步回调,然后再发回服务器呈现的DOM?)

但是,如果我的用户点击导航栏(例如,在react router中更改路径),该怎么办?现在如何使用新的适当数据初始化存储?如果我理解正确,这将不会触发来自服务器的另一个请求。它将使用绑定的javascript在客户端上重新加载。在这种情况下我该怎么办


例如,假设我有一个projects存储,在/projects上包含一家公司曾经做过的所有项目,但在/company/projects上它只包含该特定公司的项目。如何更改此存储中的数据?

我认为这不正确。您的JS包只包括您的代码,可能还包括初始数据。后续对更多数据的请求将不得不再次转到服务器。我做了一些测试,似乎每当我更改路由时都会收到服务器的请求。因此,我应该做的是始终根据来自用户的路由填充存储区?为什么不触发一个操作,在客户端操作上从服务器获取结果?这样就可以触发一个操作,如“到达公司”页面,该页面将获取适当的数据,然后通知相应的存储区?我不明白为什么这样做行不通,但感觉有点麻烦,而且我觉得应该有一种方法来定义在更改路由时要收集哪些数据。我在这里可能不正确,但除了更改路由之外,还必须定义操作,这并不“干净”。