小编jrk*_*rkt的帖子

lodash debounce in React functional component not working

我有一个围绕React Table组件构建的功能组件,该组件使用Apollo GraphQL客户端进行服务器端分页和搜索。我正在尝试为搜索实现反跳操作,以便一旦用户停止使用该值键入内容,就只对服务器执行一个查询。我已经尝试过lodash的反跳真棒的反跳承诺解决方案,但仍然针对服务器在搜索字段中键入的每个字符执行查询。

这是我的组件(删除了不相关的信息):

import React, {useEffect, useState} from 'react';
import ReactTable from "react-table";
import _ from 'lodash';
import classnames from 'classnames';
import "react-table/react-table.css";
import PaginationComponent from "./PaginationComponent";
import LoadingComponent from "./LoadingComponent";
import {Button, Icon} from "../../elements";
import PropTypes from 'prop-types';
import Card from "../card/Card";
import './data-table.css';

import debounce from 'lodash/debounce';

function DataTable(props) {
    const [searchText, setSearchText] = useState('');
     const [showSearchBar, setShowSearchBar] = useState(false);

    const handleFilterChange = (e) => {
        let searchText …
Run Code Online (Sandbox Code Playgroud)

reactjs debounce

9
推荐指数
3
解决办法
2496
查看次数

GraphQL - 未由操作定义的变量

我的 GraphQL 架构定义为:

type Query {
    getEntity(id: Int!): Entity
    getEntityUsers(entityId: Int!, statusId: Int): [User]
}

type Entity {
    id: Int!
    name: String!
    email: String!
    logo: String
    createdAt: DateTime!
    updatedAt: DateTime!

    users(statusId: Int): [User]
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我有两种获取Entity对象的用户的方法。目前适用于我的查询的是getEntityUsers根解析器方法。此查询如下所示:

query getEntityUsers($entityId: Int!, $statusId: Int) {
        users: getEntityUsers(entityId: $entityId, statusId: $statusId) {
            ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

.. 变量:

{
    entityId: 1,
    statusId: 2
}
Run Code Online (Sandbox Code Playgroud)

无论如何,是否可以通过允许我传入 来使另一种方式起作用statusId?现在查询看起来像这样:

query getEntity($id: Int!) {
        entity: getEntity(id: $id) {
            ...
            users (statusId: 2) {
                ... …
Run Code Online (Sandbox Code Playgroud)

graphql apollo-client

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

Apollo Hooks - useLazyQuery 如果传递查询,则不使用 onCompleted 选项

我有一个用于 apollo 延迟查询的自定义去抖动钩子:

import {useLazyQuery} from '@apollo/react-hooks';
import debounce from "lodash/debounce";

export function useDebouncedQuery(schema) {
    const [doQuery, {...rest}] = useLazyQuery(schema);

    const query = React.useCallback(debounce(doQuery, 1000), []);

    return [query, {
        ...rest
    }]
}
Run Code Online (Sandbox Code Playgroud)

除了onCompleted选项之外,这有效。当实现这样的钩子时:

const [doQuery] = useDebouncedQuery(query);
doQuery({
    onCompleted: data => {
        console.log(data);
    }
})
Run Code Online (Sandbox Code Playgroud)

...该onCompleted选项不会触发。但是,如果我将钩子更改为:

export function useAsyncSelectQuery(schema, options) {
    const [doQuery, {...rest}] = _useLazyQuery(schema, options);
    ...
Run Code Online (Sandbox Code Playgroud)

..并像这样实现它,它的工作原理:

const [doQuery] = useDebouncedQuery(query, {
    onCompleted: data => {
        console.log(data);
    }
});
Run Code Online (Sandbox Code Playgroud)

为什么是这样?难道我做错了什么?我有单独的逻辑需要处理传递到onCompleted不同位置的数据,因此在查询初始化时我无法传递该选项。任何帮助是极大的赞赏。

apollo-client react-apollo-hooks

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

Golang MySQL 错误 - packet.go:33:意外的 EOF

我正在将我的整个代码库从 PHP 切换到 Go,并且在运行的几个进程中,我随机收到此错误:

[mysql] 2016/10/11 09:17:16 packets.go:33: unexpected EOF
Run Code Online (Sandbox Code Playgroud)

这是我的 db 包,用于处理与数据库的所有连接:

package db

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
    "pkg/db"
)

var connection *sql.DB
var err error

func GetConnection() *sql.DB {
    if connection != nil {
        fmt.Println("********** CHECKING PING")
        err = connection.Ping()
        if err == nil {
            fmt.Println("************ CONNECTION STILL ACTIVE")
            return connection
        } else {
            fmt.Println("********** PING ERROR: " + err.Error())
        }
    }

    connection, err = sql.Open("mysql", db.DEVUSER + ":" + db.DEVUSER_PASSWORD + "@tcp(localhost:3306)/main?parseTime=true")
    if err != nil …
Run Code Online (Sandbox Code Playgroud)

mysql go

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

ImageMagick - 为图像添加白色透明叠加层

我需要拍一张正常的照片:

在此输入图像描述

并添加一个白色透明覆盖,使它看起来像这样:

在此输入图像描述

不要注意转换后的图像上的文字或它是原稿的裁剪版本.我需要简单地将顶部转换为完全相同的图像,只需使用白色透明覆盖层.我也需要它作为cli命令.

image mask imagemagick command-line-interface

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

带有Elasticsearch CORS错误的ReactiveSearch(ReactJS)

我正在尝试将前端React应用程序与本地elasticsearch节点连接。我正在使用ReactiveSearch连接elasticsearch。我的服务器在Digital Ocean上运行,并且在Ubuntu 16.04上运行。我按照他们的快速入门指南在服务器上运行elasticsearch,并在我的elasticsearch.yml文件中添加了以下几行:

http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE http.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type,Content-Length

我的ReactJS组件看起来就像ReactiveSearch入门说的那样:

            <ReactiveBase
                app="users"
                url="http://localhost:9200">
                <DataSearch
                    componentId="SearchSensor"
                    dataField={["email", "username", "name"]}
                    title="Search"
                    placeholder="Search for users..."
                />
            </ReactiveBase>
Run Code Online (Sandbox Code Playgroud)

但是,我收到预检请求标头的CORS错误:

在此处输入图片说明

当我尝试访问url:时http://localhost:9200/users/active/_msearch,得到以下响应:

{"error":{"root_cause":[{"type":"parse_exception","reason":"Failed to derive xcontent"}],"type":"parse_exception","reason":"Failed to derive xcontent"},"status":400}
Run Code Online (Sandbox Code Playgroud)

但是,如果我转到url:http://localhost:9200/users/active/1它实际上起作用并显示该对象:

{"_index":"users","_type":"active","_id":"1","_version":1,"found":true,"_source":{ "name": "Jon Stevens", "email": "jon@vendorpay.io" }}

这到底是怎么回事?任何帮助是极大的赞赏!

请求/控制台屏幕快照:

在此处输入图片说明

在此处输入图片说明

cors elasticsearch reactjs reactivesearch

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

查找与正则表达式golang匹配的所有字符串

我试图返回一个数组或切片,针对字符串针对特定正则表达式的所有匹配项。字符串是:

{city}, {state} {zip}
Run Code Online (Sandbox Code Playgroud)

我想返回一个包含花括号之间所有字符串匹配项的数组。我尝试使用regexp软件包来完成此操作,但无法弄清楚如何返回我要查找的内容。这是我当前的代码:

r := regexp.MustCompile("/({[^}]*})/")
matches := r.FindAllString("{city}, {state} {zip}", -1)
Run Code Online (Sandbox Code Playgroud)

但是,无论我尝试什么,每次返回的结果都是一片空白。

regex go

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

在方法声明中允许可变数量的返回值

我有一个函数可以解决 Go 不允许在方法声明中设置默认值的问题。我想通过允许可变数量的返回变量来使它更好一点。我知道我可以允许接口数组作为返回类型,然后创建一个包含所有要返回的变量的接口数组,如下所示:

func SetParams(params []interface{}, args ...interface{}) (...[]interface{}) {
    var values []interface{}
    for i := range params {
            var value interface{}
            paramType := reflect.TypeOf(params[i])
            if len(args) < (i + 1) {
                    value = params[i]
            } else {
                    argType := reflect.TypeOf(args[i])
                    if paramType != argType {
                            value = params[i]
                    }
                    value = args[i]
            }
            values = append(values, value)
    }

    return values
}
Run Code Online (Sandbox Code Playgroud)

这是您要为其定义默认值的方法的示例。您将其构建为可变参数函数(允许可变数量的参数),然后定义您在函数内部而不是在声明行中查找的特定参数的默认值。

func DoSomething(args ...interface{}) {
    //setup default values
    str := "default string 1"
    num := 1
    str2 := …
Run Code Online (Sandbox Code Playgroud)

go

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

Linux - 使用平移和缩放创建动画 gif

我正在寻找一个 Linux 命令行实用程序,它可以让我从现有图像创建动画 gif,然后应用平移和/或缩放来创建动画 gif。我已经研究了一些,例如 ImageMagick,但没有发现任何帮助。我需要的东西要么是命令行实用程序,要么是节点模块。任何帮助是极大的赞赏!

linux terminal node.js

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

在 Golang exec 中使用管道运行命令

我正在尝试从此处获取示例,以使用 phantomjs 录制网页并将标准输出(即图像)通过管道传输到 ffmpeg 命令以创建视频。说明您需要运行的命令是:

phantomjs runner.js | ffmpeg -y -c:v png -f image2pipe -r 25 -t 10  -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart dragon.mp4
Run Code Online (Sandbox Code Playgroud)

如果我直接在终端中运行该命令的类似版本,我可以让它正常工作。问题是我需要通过 Golang os/exec包运行上述命令。与:

cmd := exec.Command(parts[0], parts[1:]...)
Run Code Online (Sandbox Code Playgroud)

方法,第一个参数是正在执行的命令的基本可执行文件,它不遵守管道。我想让它在一个命令中工作,这样我就不必将所有图像写入文件,然后运行第二个 ffmpeg 命令来读取所有这些图像。有什么建议?

ffmpeg go

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

通过 Golang exec 运行 FFMPEG 命令

我需要运行一个ffmpeg命令来从图像创建一个视频,图像之间的淡入淡出作为过渡。该命令源自这篇文章。我需要通过 Golang os/exec包运行它。我需要运行的命令是:

ffmpeg -loop 1 -t 5 -i img-0.png -loop 1 -t 5 -i img-1.png -loop 1 -t 5 -i img-2.png -filter_complex "[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];[0:v][b1v][1:v][b2v][2:v]concat=n=5:v=1:a=0,format=yuv420p[v]" -map '[v]' -c:v libx264 -pix_fmt yuv420p -r 30 -s 1280x720 -aspect 16:9 -crf 1 -preset ultrafast output.mp4
Run Code Online (Sandbox Code Playgroud)

如果您直接在终端中运行此命令,它就可以正常工作。但是,它不适用于我的代码。这是我的代码,它接受一个字符串命令并通过os/exec包运行它:

command := "ffmpeg -loop 1 -t 5 -i img-0.png -loop 1 -t 5 -i img-1.png -loop 1 -t 5 -i img-2.png -filter_complex "[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];[0:v][b1v][1:v][b2v][2:v]concat=n=5:v=1:a=0,format=yuv420p[v]" -map '[v]' -c:v libx264 -pix_fmt yuv420p -r 30 …
Run Code Online (Sandbox Code Playgroud)

ffmpeg go

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

GitHub Action 错误:“需要顶级‘运行:’部分”

我正在尝试让私有 GitHub 操作在我的私有 GitHub 组织中工作。包含这些工作流程“模板”的私人存储库具有这个简单的文件结构,因为我只是试图让最低限度的工作:

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .git\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 test\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 action.yml\n
Run Code Online (Sandbox Code Playgroud)\n

文件action.yml内容是:

\n
name: Test\n\non: push\n\njobs:\n  test:\n    name: Test\n    runs-on: ubuntu-latest\n    steps:\n\n    - name: Echo\n      run: |\n        echo Heyyyyy\n
Run Code Online (Sandbox Code Playgroud)\n

我正在尝试在另一个私有存储库中使用此操作,并使用包含以下内容的工作流程文件:

\n
name: Test\n\non:\n  push:\n    branches:\n      - master\n\njobs:\n  test:\n    name: Test\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n        with:\n          repository: <private-actions-repo>\n          token: ${{ secrets.REPO_TOKEN }}\n          path: github-actions\n      - name: Test private action\n        uses: ./github-actions/test\n
Run Code Online (Sandbox Code Playgroud)\n

当此操作运行时,我收到以下错误:\n##[error]Top level 'runs:' section is required for /home/runner/work/<private-repo>/./github-actions/test/action.yaml

\n

为了对此进行调试,我将使用模板的工作流程更新为该cat文件的文件内容: …

github-actions building-github-actions

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

React App与Go后端api通信

我有一个前端React应用程序和一个Go后端服务作为前端的API。两者都是同一名称空间中的Kubernetes服务。在不使用外部IP的情况下如何与Go后端服务通信?我知道它可以与外部ip一起使用,但是我无法让fqdn​​像应该的那样正确解析。前端服务是从nginx:1.15.2-alpinedocker映像构建的。如何获得前端React应用与后端Go服务器通信?

前端service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: ui
  namespace: client
  labels:
    app: ui
spec:
  type: NodePort
  ports:
    - name: http
      port: 80
      targetPort: http
    - name: https
      port: 443
      targetPort: https
  selector:
    app: ui
Run Code Online (Sandbox Code Playgroud)

前端Deployment.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ui
  namespace: client
spec:
  replicas: 1
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 2
  template:
    metadata:
      labels:
        app: ui
    spec:
      containers:
        - name: ui
          image: #######
          imagePullPolicy: IfNotPresent
          ports:
            - name: http
              containerPort: 80
Run Code Online (Sandbox Code Playgroud)

后端service.yaml:

apiVersion: …
Run Code Online (Sandbox Code Playgroud)

dns go reactjs kubernetes

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