小编jve*_*nce的帖子

使用后退按钮时React JS页面不断刷新

我有 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 中并指定: …

reactjs react-router-dom

9
推荐指数
1
解决办法
1万
查看次数

在mongodb中聚类地理数据

我们有一个拥有> 200K行的mongodb数据库,每个行包含一个点位置(lat,lng).我们想创建一个指定地理点和半径的查询,并返回一个簇列表.每个群集基本上是彼此靠近的位置的聚合.

第一个问题:mongodb是否可以为我们自动创建和维护这些集群?如果是,我们如何查询mongodb以返回特定地理位置的聚类(而不是实际数据点).每个返回的集群都有一个位置和实际数据点的数量(地理标记的行).基本上,我们希望它返回k-means聚类算法的等价物.

我们已经创建了一个mongodb geoHaystack索引,似乎是对行进行聚类,但不确定如何使用它来实现上述查询:

db.locations.createIndex({'position':"geoHaystack",类型:1},{bucketSize:1})

或者,我们可以动态使用聚类算法(如https://github.com/spember/geo-cluster)来生成这些聚类,但我假设这将是一个非常缓慢的过程.

有关如何最好地实现此类查询的任何建议?

geolocation geospatial mongodb

7
推荐指数
1
解决办法
662
查看次数

尽管 CORS 使用 jHipster oAuth 时出现未经授权的错误

我正在运行一个 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 CorsSpring Data Rest and Cors提出的一些解决方案,但无济于事。

这是否可以在 jHipster 中完成以启用身份验证以从浏览器或应用程序(不在 jhipster 服务器上运行)工作?

authentication spring oauth cors jhipster

3
推荐指数
1
解决办法
1120
查看次数