小编Pra*_*tha的帖子

允许在 React 的路由参数中使用斜杠

我有一个这样的路由器:

<Route path="/blog/:date/:folder" render={(props: any) => <Home />
Run Code Online (Sandbox Code Playgroud)

它适用于:

http://localhost/blog/2017-05-20/test
Run Code Online (Sandbox Code Playgroud)

但是,:folder可以有斜杠(子目录),我想一次解析文件夹中的所有路径。

不是工作:

http://localhost/blog/2017-05-20/test/sub/dir
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我只得到test. 我想:folder作为test/sub/dir一个整体。

有没有办法用 React Router 实现这一点?

预期

:date => '2017-05-20'
:folder => 'test/sub/dir'
Run Code Online (Sandbox Code Playgroud)

实际的:

:date => '2017-05-20'
:folder => 'test'
Run Code Online (Sandbox Code Playgroud)

reactjs react-router-v4

10
推荐指数
1
解决办法
4776
查看次数

ws::Sender 未实现 std::fmt::Debug

我的 Redis 服务器有一个连接类型Cons和一个Subscriber实现。ws 是一个 websocket 库。也没有机会编辑源代码:

use std::collections::HashMap;
use std::fmt::Debug;
use std::sync::atomic::AtomicBool;
use std::sync::{Arc, Mutex};

#[derive(Debug)]
pub struct Consumer {
    tag: String,
    no_local: bool,
    no_ack: bool,
    exclusive: bool,
    nowait: bool,
    subscriber: Box<ConsumerSubscriber>,
    pub current_message: Option<bool>,
}

impl Consumer {
    pub fn new(
        tag: String,
        no_local: bool,
        no_ack: bool,
        exclusive: bool,
        nowait: bool,
        subscriber: Box<ConsumerSubscriber>,
    ) -> Consumer {
        Consumer {
            tag,
            no_local,
            no_ack,
            exclusive,
            nowait,
            subscriber,
            current_message: None,
        }
    }

    pub fn new_delivery_complete(&mut self) {
        if …
Run Code Online (Sandbox Code Playgroud)

rust

8
推荐指数
1
解决办法
8159
查看次数

如何在 Windows 上的 Go (golang) 中打印 UTF-8(或 unicode)字符

让我们看看这个:

\n\n
\xe2\x9c\x93 Hello, \xe4\xb8\x96\xe7\x95\x8c\n
Run Code Online (Sandbox Code Playgroud)\n\n

正如您所看到的,有一个 unicode 复选标记和中文/日文字符。在 go 中,如果我使用 MSYS 或 linux 环境,我可以轻松打印这些字符。即使在窗户上。但是,我无法在CMD或 中看到它们Powershell

\n\n

我懂了:

\n\n

电源外壳

\n\n

这是我非常基本的代码:

\n\n
package main\n\nimport (\n    "fmt"\n)\n\nfunc main() {\n\n    fmt.Println("\xe2\x9c\x93 Hello, \xe4\xb8\x96\xe7\x95\x8c")\n    // OR\n    fmt.Println("\\u2713 Hello, \xe4\xb8\x96\xe7\x95\x8c")\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

此外,我有数十个控制台应用程序,它们能够使用 cmd 或 powershell 在我的窗口上显示此类字符。为什么去不了?

\n

console powershell go

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

提取红宝石单引号之间的日期

我有一个像这样的字符串:

ticket:1 priority:5 delay:'2019-08-31 02:53:27.720422' delay:'2019-08-30 00:04:10.681242'
Run Code Online (Sandbox Code Playgroud)

我成功提取ticketpriority但失败了delay

我想要的是将延迟提取为数组,因此输出将如下所示:

#delays =>
[
  "delay:'2019-08-31 02:53:27.720422'",
  "delay:'2019-08-30 00:04:10.681242'"
]
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过什么?

str = "ticket:1 priority:5 delay:'2019-08-31 02:53:27.720422' delay:'2019-08-30 00:04:10.681242'"
delays = str.scan(/delay:\w+(?:'\w+)*/).flatten
Run Code Online (Sandbox Code Playgroud)

我该如何提取它们?注意,不能保证日期格式与示例中的相同。日期格式可以是任何格式。因此,我们应该关注单引号之间的字符串。


如果可能的结果可能是这样的(这样我就不必再次提取日期了。):

#delays =>
[
  "2019-08-31 02:53:27.720422",
  "2019-08-30 00:04:10.681242"
]
Run Code Online (Sandbox Code Playgroud)

ruby regex

6
推荐指数
1
解决办法
72
查看次数

当使用 React + Redux 中的状态数据在浏览器上进行后退/前进时,内容不会改变

我想提取 subreddits 并以列表形式向用户显示。当用户从选项菜单中更改 subreddit 时,我会将状态推送到浏览器历史记录。

现场演示: https: //react-7qfrxx.stackblitz.io

再生产:

  1. 打开上面的链接
  2. 从列表中选择frontend。列出后reactjs再次选择。
  3. 您将看到 URL 更改(附加 subreddit)
  4. 现在按浏览器的后退按钮并前进。
  5. 您将看到URL 发生了变化,但内容是相同的

实时编辑器https://stackblitz.com/edit/react-7qfrxx

在AsyncApp.js Line 36

this.props.dispatch(push('/' + nextSubreddit))
Run Code Online (Sandbox Code Playgroud)

当按下后退/前进时,如何向用户显示上一个或下一个缓存/状态?有人可以编辑我的在线应用程序以向我展示正确的方法吗?我两天以来一直在尝试解决这个问题,但没有成功。


在此输入图像描述

我需要在不刷新页面的情况下执行此操作。(异步)

javascript reactjs redux

5
推荐指数
1
解决办法
1856
查看次数

“文件”对象没有“路径”属性。(打字稿)

我将File来自浏览器的对象(通过删除)传递给这样的函数:

// .... logic here...
accept(file)

public static accept(file: File) {
   console.log(file)
   /* prints:
      => lastModified: 1555453309243
         lastModifiedDate: Wed Apr 17 2019 01:21:49 GMT+0100 (GMT+01:00) {}
         name: "test.txt"
         path: "test.txt" --> as you can see there is a path variable in here.
         size: 16
         type: "text/plain"
         webkitRelativePath: ""
         __proto__: File
   */

   console.log(file.name) // => prints 'test.txt'
   console.log(file.size) // => prints '16'
   console.log(file.path) // => !! error given. path does not exists in File object. Also IDE does not …
Run Code Online (Sandbox Code Playgroud)

html javascript typescript

5
推荐指数
2
解决办法
2445
查看次数

如何在 PostgreSQL 12 上添加基于选择值 (JSONB) 的条件?

我想过滤带有gold徽章的行。我正在使用 PG12,并且使用它的新路径功能。

为了澄清一下,我有一个users_tbl这样的表:

CREATE TABLE users_tbl (
   ID serial NOT NULL PRIMARY KEY,
   data jsonb NOT NULL
); 
Run Code Online (Sandbox Code Playgroud)

让我们插入值:

INSERT INTO users_tbl (ID, data) values (1, '{"badges": ["gold", "silver"], "another_field": 1}');
INSERT INTO users_tbl (ID, data) values (2, '{"badges": ["silver"], "another_field": 3}');
INSERT INTO users_tbl (ID, data) values (3, '{"badges": ["gold"], "another_field": 4}');
Run Code Online (Sandbox Code Playgroud)

现在当我这样查询时:

SELECT
  ID, jsonb_path_query("data", '$.badges') AS "badges"
FROM "users_tbl";
Run Code Online (Sandbox Code Playgroud)

我得到了预期的以下结果:

+----+--------------------+
+ ID |       badges       +
+----+--------------------+
+ 1  | ["gold", "silver"] + …
Run Code Online (Sandbox Code Playgroud)

sql arrays postgresql json jsonb

5
推荐指数
1
解决办法
6390
查看次数

如何在 Rails 中仅获取 GET 和 POST 参数作为哈希值?

我想获得任何额外的GETPOST PARAMS Rails中没有Rails的自己的添加,如controllerformat等...

params.inspect给了我我想要的东西,但它有一些 Rails 为我添加的键,例如controllerformat。我只想获取用户输入GETPOST参数作为哈希值。我怎样才能做到这一点?我找不到任何东西。

网址:

http:/test.com/some/path?query1=1&query2=1

跑:

puts params.inspect

预期的:

{"query1"=>"1", "query2"=>"1"}

实际的:

{"query1"=>"1", "query2"=>"1", "format"=>":json", "controller"=>"get", "action"=>"index", "folder"=>"some/path"}

这也可以与 POST 请求结合使用。我只想过滤它们并且只将它们作为哈希值。

我从控制器内部执行此操作。使用导轨 5。

ruby hash ruby-on-rails

4
推荐指数
1
解决办法
7008
查看次数

如何在Rust HashMap中为同一个键存储多个元素?

我有一个HashMap<u32, Sender>.Sender是一个打开的连接对象,键是用户ID.每个用户都可以从多个设备连接.我需要为同一个用户ID存储所有可能的打开连接.在此之后,我可以迭代并向同一用户的所有打开的连接发送消息.

以上HashMap仅存储每个用户ID和连接一次.我需要获得一个具有多个值的键.如何将值转换为列表或数组,以便我可以看到哪些连接存在并发送给它们?

我不是在谈论不同的价值类型,比如枚举.我说的是相同的类型值但不止一个.也许HashMap不是为此设计的?

其他想法也受到欢迎.

hashmap multimap rust data-structures

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

检查是否包含对另一个哈希的哈希

我有一系列像这样的哈希:

arr = [
  { email: 'prathab@hotmail.in', valid: true },
  { email: 'another@mail.com', valid: false }
]
Run Code Online (Sandbox Code Playgroud)

我需要检查是否email: 'prathab@hotmail.in'valid: true在一个单一的哈希都存在.

如何在不使用each循环的情况下检查数组中的此类哈希?

目前我这样做:

found = false
arr.each do|v|
  if v[:email] == 'prathab@hotmail.in' && v[:valid] == true
    found = true
    break
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby

3
推荐指数
2
解决办法
97
查看次数

如何将 UTC 时间戳按原样导入 Luxon?(从时刻迁移)

我的应用程序中有这一行:

const createdOn: moment.Moment = moment.utc(created_on)
Run Code Online (Sandbox Code Playgroud)

created_on来自 API 端点,格式如下:

{ 
  ...,
  created_on: "2019-03-08T15:32:26.285Z",
}
Run Code Online (Sandbox Code Playgroud)

这基本上created_on作为 UTC 时区导入。created_on也是UTC。因此,此方法不会破坏时区并正确导入 UTC。我还有这个:

这会生成 UTC 时区的当前时间戳。

moment.utc()
Run Code Online (Sandbox Code Playgroud)

请注意,如果我只是将日期导入到时刻,然后将其转换为 UTC,我的时间就会出错。默认情况下,时刻假定给定日期等于当前访问者时区。我需要按原样导入时间。始终是 UTC。

的等价物是什么Luxon

javascript datetime momentjs ecmascript-6 luxon

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

如何使用rbenv在系统范围内安装ruby

您可能认为这是一个经典的“全局”命令问题,但事实并非如此。

我可以通过以下方式全局设置红宝石:

rbenv global 2.5.1
Run Code Online (Sandbox Code Playgroud)

但是,这使得ruby2.5.1对于所有用户都是全局的,但对于整个系统而言则不是。当同一服务器中的应用程序要调用ruby或access / pipe ruby​​时,它们会command not found出错。

我认为,我们应该有安装或符号链接/usr/bin/usr/local/bin什么的...

我找不到与此有关的任何内容。如何使选定的红宝石版本可供其他应用程序查看?

我唯一的解决方案是将ruby自己构建到系统目录,但这将与rbenv冲突。

例子:

  • 当postfix想要将电子邮件发送到ruby时,即使我设置为global,也找不到ruby。
  • 当webmin试图通过ruby运行命令时,它也找不到ruby。

解决方法

/root/.rbenv/shims文件夹添加到$PATH执行的脚本中可以按预期工作,但是在某些情况下,无法直接进行修改$PATH我在这里有什么选择?

ruby ubuntu rbenv

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

在 PostgreSQL 12 上使用 WITH 查找唯一值、计算重复项并对它们进行排名

我有 3 个复杂的表。对于这个问题,我就简化一下用法。我需要排名、计数(重复)和唯一记录(结果)。它适用于单个表,但是,当WITH包含并INNER JOIN给出另一个表时,我不再获得任何记录。

表格:

CREATE TABLE public.emails (
  id                bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY
    (MAXVALUE 9223372036854775807),
  sender            jsonb NOT NULL
);


CREATE TABLE public.contacts (
  id                bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY
    (MAXVALUE 9223372036854775807),
  email            text NOT NULL,
  full_name            text NOT NULL
);
-- sample data
insert into emails (sender) VALUES ('{"email": "dennis1@example.com", "name": "dennis1"}');
insert into emails (sender) VALUES ('{"email": "dennis1@example.com", "name": "dennis1"}');

insert into …
Run Code Online (Sandbox Code Playgroud)

sql postgresql postgresql-12

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