我有 2 个 React JS 页面(A 和 B),当我从 A->B 返回 A 时,页面 A 每次都会刷新。我的印象是页面没有被破坏。StackOverflow 上的所有相关问题似乎都是关于相反的问题。
页面刷新的原因是按下后退按钮时会调用 useEffect(),尽管使用 useState() 来防止这种情况发生。我什至尝试用“props.id”参数替换“refresh”(永远不会改变)。参见下面的代码:
这是我的页面 A 的代码:
import { useHistory, useParams } from "react-router-dom";
import React, { useState, useEffect, useRef } from "react";
import { Link } from "react-router-dom";
export default function Test(props) {
const [refresh, setRefresh] = useState(false);
useEffect(() => {
console.log("useEffect called: "+refresh);
setRefresh(true);
},[refresh]);
return (
<>
Hello from Test
<Link to="/test2">Test me</Link>
</>
);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用react-router-dom:“^ 5.1.2”,并从“react-router-dom”导入{BrowserRouter as Router};在 App.js 中并指定: …
我们有一个拥有> 200K行的mongodb数据库,每个行包含一个点位置(lat,lng).我们想创建一个指定地理点和半径的查询,并返回一个簇列表.每个群集基本上是彼此靠近的位置的聚合.
第一个问题:mongodb是否可以为我们自动创建和维护这些集群?如果是,我们如何查询mongodb以返回特定地理位置的聚类(而不是实际数据点).每个返回的集群都有一个位置和实际数据点的数量(地理标记的行).基本上,我们希望它返回k-means聚类算法的等价物.
我们已经创建了一个mongodb geoHaystack索引,似乎是对行进行聚类,但不确定如何使用它来实现上述查询:
db.locations.createIndex({'position':"geoHaystack",类型:1},{bucketSize:1})
或者,我们可以动态使用聚类算法(如https://github.com/spember/geo-cluster)来生成这些聚类,但我假设这将是一个非常缓慢的过程.
有关如何最好地实现此类查询的任何建议?
我正在运行一个 jHipster 实例,在服务器上启用了 oAuth 身份验证和 CORS。我添加了以下bean:
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.setAllowedMethods(Arrays.asList(new String[]{"GET", "PUT", "POST", "DELETE", "OPTIONS"}));
source.registerCorsConfiguration("/api/**", config);
source.registerCorsConfiguration("/v2/api-docs", config);
source.registerCorsConfiguration("/oauth/**", config);
return new CorsFilter(source);
}
Run Code Online (Sandbox Code Playgroud)
并将 .antMatchers(HttpMethod.OPTIONS, "/oauth/token").permitAll() 添加到 ResourceServerConfiguration 配置。
当我尝试从在浏览器本地运行的应用程序对用户(使用在服务器上运行的 jHipster)进行身份验证时,我得到:请求方法:选项 - 状态代码:401 未经授权
似乎没有正确配置 CORS 来处理飞行前身份验证 POST 请求。
我尝试实施Spring Data Rest and Cors和Spring Data Rest and Cors提出的一些解决方案,但无济于事。
这是否可以在 jHipster 中完成以启用身份验证以从浏览器或应用程序(不在 jhipster 服务器上运行)工作?