小编rob*_*nnn的帖子

从通过React Router设置的路由访问Redux Store

我想利用react-router的onEnter处理程序来提示用户在进入受限路由时进行身份验证.

到目前为止,我的routes.js文件看起来像这样:

import React from 'react';
import { Route, IndexRoute } from 'react-router';

export default (
    <Route   path="/"         component={App}>
      <IndexRoute             component={Landing} />
      <Route path="learn"     component={Learn} />
      <Route path="about"     component={About} />
      <Route path="downloads" component={Downloads} onEnter={requireAuth} />
    </Route>
)
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望我的requireAuth函数是一个可以访问商店和当前状态的redux动作,就像这样:store.dispatch(requireAuth()).

不幸的是,我无法访问此文件中的商店.connect在这种情况下,我认为我不能真正使用它来访问我想要的相关操作.我也不能只import store从创建商店的文件中获取,因为在应用程序首次加载时这是未定义的.

javascript reactjs react-router redux

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

平滑数组的值

如果我有一个数组,如[3,5,0,8,4,2,6],有没有办法"平滑"这些值,使它们彼此更接近,并显示更少的方差?

我已经研究了使用高斯函数对一个1维案例进行窗口化数据,这是我的数组,但是在实现它时遇到了麻烦.这个线程似乎正好解决了我的需要,但我不明白用户naschilling(第二篇文章)如何提出高斯矩阵值.

背景:我正在研究音乐波形发生器(借用SoundCloud的设计),它在时间t映射歌曲的振幅到相应的条形高度.不幸的是,有很多噪音,当程序映射出微小的振幅导致高度突然下降时,它看起来特别难看.我基本上想要平滑酒吧高度,所以他们不是那么多样化.

我正在使用的语言是Javascript.

编辑:对不起,让我更具体地说"平滑"值.根据上面链接的线程,用户采用了一个数组

[10.00, 13.00, 7.00, 11.00, 12.00, 9.00, 6.00, 5.00]
Run Code Online (Sandbox Code Playgroud)

并使用高斯函数将其映射到

[ 8.35,  9.35, 8.59,  8.98,  9.63, 7.94, 5.78, 7.32]
Run Code Online (Sandbox Code Playgroud)

注意这些数字是如何彼此更接近的.

编辑2:它工作了!感谢用户Awal Garg的算法,结果如下:

没有平滑 一些平滑 最大平滑度

编辑3:这是我在JS的最终代码.我调整它,以便数组的第一个和最后一个元素能够通过环绕数组来找到它的邻居,而不是调用它自己.

var array = [10, 13, 7, 11, 12, 9, 6, 5];

function smooth(values, alpha) {
    var weighted = average(values) * alpha;
    var smoothed = [];
    for (var i in values) {
        var curr = values[i];
        var prev …
Run Code Online (Sandbox Code Playgroud)

javascript arrays smoothing

12
推荐指数
2
解决办法
4491
查看次数

使用React Router强制执行scrollToTop行为

我希望在转换时将用户的滚动位置默认设置为页面顶部.

例如,单击<Link>页脚上的元素会将用户推入到页脚完全向下滚动的视图中.

是否可以选择设置所有过渡以从顶部显示新组件?

react-router redux

10
推荐指数
2
解决办法
2732
查看次数

zsh:找不到命令:rabbitmq-server

我一直在通过自制软件关注 RabbitMQ安装指南

它说,添加一行到我.bash_profile,但因为我使用ohmyzsh为我端我猜我不得不编辑我的.zshrc文件。

我尝试添加以下可能性:

  • PATH=$PATH:/usr/local/sbin
  • export PATH=$PATH:/usr/local/sbin
  • export PATH=/usr/local/sbin:$PATH

不幸的是,他们都没有工作。

.zshrc文件的其他地方,我看到这一行:export ZSH=/Users/robinkim/.oh-my-zsh. 这可能会提供有关需要添加什么的线索。

编辑:我只是忘了 brew link rabbitmq

zsh rabbitmq

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

如何在调用多个脚本的yarn CLI中处理args

假设我有一个像这样设置的纱线脚本:

// package.json
{
  ...
  "scripts": {
    "custom": "script1 && script2"
  }
}
Run Code Online (Sandbox Code Playgroud)

如果script1需要一些额外的参数,我将如何传递它们?

跑步yarn custom -- --foo=bar会触发script1 && script2 --foo=bar与预期相反的情况script1 --foo=bar && script2

command-line-interface yarnpkg

5
推荐指数
0
解决办法
342
查看次数

如何在 CloudFirestore 上移动子集合

我们计划使用 Google Firestore 实施虚拟文件系统。

子集合的想法很好,因为它允许我们根据文件夹层次结构对数据进行建模,如下所示: /folders/folderA/entities/folderB/entities/fileX

与实际的文件系统非常相似,我们希望处理跨文件夹移动,例如将嵌套子文件夹folderB从 parent移动folderA到 parent folderC。事实上,通常情况下,我们要移动的文件夹本身可能包含它们自己的文件和文件夹子集,深度为任意 K 级。

此注释表明移动文档不会自动移动其关联的子集合。同样,删除文档将放弃删除其底层子集合,使它们成为孤儿。似乎将文件夹(及其实体)从一个父级移动到另一个父级的唯一方法是通过递归克隆 + 删除策略,如果其子实体很大,则可能难以可靠且事务性地完成。

另一种方法是放弃使用子集合并将所有文件夹存储在根目录中,使用文档字段parent_id来指向平面集合中的其他文档。由于 Firestore 的积极索引,这不应影响查询速度但我们无法在本地重现此声明;即,与将所有内容存储在顶层相比,随着数据库中文档总数的增加,通过子集合进行查询的性能要高得多。在此处获得可重现的回购。请注意,repo 使用本地模拟器实例,而不是实际的 Firestore 服务器。

任何建议都会非常有帮助!

firebase google-cloud-firestore

5
推荐指数
0
解决办法
482
查看次数

nginx gzip 压缩不起作用

我不知道将我的 gzip 压缩线放置在我的http块中的什么位置,如图所示。

http {
    default_type application/octet-stream;
    include /etc/nginx/mime.types;

    log_format  main    '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    keepalive_timeout 65;

    server {

        listen 8080;

        root /usr/share/nginx;

        location / {
            root /usr/share/nginx/html;

            try_files $uri /index.html;

            autoindex off;
        }

        location ~ ^/(images|fonts|videos)/ {
            root /usr/share/nginx/assets;

            autoindex                off;
            expires                  7d;
            proxy_redirect           off;
            proxy_max_temp_file_size 0;

        }

        location ~ \.(mp3|mp4) {

        }
    }

    include /etc/nginx/conf.d/*.conf;
}
Run Code Online (Sandbox Code Playgroud)

我想用于gzip压缩的行在这里,我不知道是将这些放在server块中,在server块之前,还是在location块中:

# Compression
gzip on;
gzip_proxied any;
gzip_types text/plain …
Run Code Online (Sandbox Code Playgroud)

gzip nginx

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

在安装时从React组件获取html类名

也许这违背了反应的理念,但我想知道是否有可能确定刚刚安装的组件的类.

例如:

export class HelloWorldDiv extends Component {
    componentDidMount() {
        // can I magically determine that the class of the component that just mounted (in this case 'hello-world')?
        // totally open to using jquery if necessary
    }

    render() {
        return (
            <div className="hello-world">
            </div>
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

dom reactjs

2
推荐指数
1
解决办法
3894
查看次数

NGINX位置重写URL,带或不带斜杠

目前我有这个位置块:

location = /events {
    rewrite ^ https://totallydifferenturl.com;
}
Run Code Online (Sandbox Code Playgroud)

这成功重定向mywebsite/events,但我希望这个块也能处理mywebsite/events/.

尝试location = /events/?没有成功.

regex nginx url-rewriting

2
推荐指数
1
解决办法
7260
查看次数