小编ama*_*ann的帖子

从对象中删除值而不进行变异

在不改变原始对象的情况下从特定键的对象中删除值的好方法和简短方法是什么?

我想做点什么:

let o = {firstname: 'Jane', lastname: 'Doe'};
let o2 = doSomething(o, 'lastname');
console.log(o.lastname); // 'Doe'
console.log(o2.lastname); // undefined
Run Code Online (Sandbox Code Playgroud)

我知道有很多不可变的库用于这样的任务,但我想在没有库的情况下离开.但要做到这一点,一个要求是有一个简单而简短的方法可以在整个代码中使用,而不会将方法作为效用函数抽象出来.

例如,为了添加值,我执行以下操作:

let o2 = {...o1, age: 31};

这很简单,易于记忆,不需要实用功能.

是否有类似的东西去除值?ES6非常受欢迎.

非常感谢你!

javascript immutability

77
推荐指数
5
解决办法
5万
查看次数

重新导出默认导出

从另一个文件重新导出默认导出的最佳方法是什么?

我想做这样的事情:

export Button from './Button/Button';
Run Code Online (Sandbox Code Playgroud)

显然,这不是有效的 EcmaScript 语法(但它曾经在较旧的 Babel 版本中工作)。

结果我想 import {Button} from 'components';

有没有更好的方法,也许是单线?ES6 语法将是首选。

谢谢!

javascript ecmascript-6 babeljs

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

如何检查django中多对多字段的类型?

如何检查django中多对多字段的类型?

我想这样做:

import django  
field.__class__ == django.db.models.fields.related.ManyRelatedManager
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为ManyRelatedManager找不到类.但是,如果我做field.__class__的输出是django.db.models.fields.related.ManyRelatedManager

为什么它指的是一个似乎不存在的类,我怎样才能将它带到工作中?

非常感谢您的帮助.

python django django-models manytomanyfield manyrelatedmanager

7
推荐指数
2
解决办法
5570
查看次数

按子像素滚动网页

是否可以使用 JavaScript 按子像素滚动网页?

我想做类似以下的事情:

document.querySelector('body').scrollTop += 0.5
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为scrollTop 将给定的数字转换为整数,这会导致截掉数字的小数部分。

我需要这个才能自动滚动网页,但速度非常慢。如果我使用全像素,滚动看起来不平滑。

我唯一能想到的是改变translateY,因为它接受子像素。但这会破坏我的常规滚动行为,这是我真正想避免的。

编辑: 我创建了两个 JSFiddles 来显示差异:

它们以相同的速度滚动。但第一个并不顺利。但是,第二个破坏了本机滚动(之后您无法滚动到顶部)。我知道第二个可以通过使用 iScroll 或类似插件来修复,但如果不是绝对必要,我想避免这种情况。

有什么建议么?

html javascript css

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

在GraphQL中删除之前删除不必要的字段

我有一个Article在我的架构中调用的类型:

type Article {
  id: ID!
  updated: DateTime
  headline: String
  subline: String
}
Run Code Online (Sandbox Code Playgroud)

对于它的更新,有一个updateArticle(id: ID!, article: ArticleInput!)突变使用的相应输入类型:

input ArticleInput {
  headline: String
  subline: String
}
Run Code Online (Sandbox Code Playgroud)

突变本身看起来像这样:

mutation updateArticle($id: ID!, $article: ArticleInput!) {
  updateArticle(id: $id, article: $article) {
    id
    updated
    headline
    subline
  }
}
Run Code Online (Sandbox Code Playgroud)

文章始终保存为一个整体(而不是单个字段逐个),所以当我通过了一篇文章,该突变我以前牵强,它会抛出这样的错误Unknown field. In field "updated",Unknown field. In field "__typename"Unknown field. In field "id".这些有根本原因,那些字段没有在输入类型上定义.

根据规范,这是正确的行为:

(...)此无序映射不应包含任何名称未由此输入对象类型的字段定义的条目,否则应抛出错误.

现在我的问题是处理这些场景的好方法是什么.我应该将应用代码中输入类型允许的属性列入白名单吗?

如果可能的话我想避免这种情况,并且可能有一个实用程序功能将它们切换为我,它知道输入类型.但是,由于客户端不了解架构,因此必须在服务器端进行.因此,不必要的属性将转移到那里,我想这是他们不应该首先转移的原因.

有没有比白名单更好的方法?

我正在使用apollo-client,react-apollo而且graphql-server-express.

javascript graphql graphql-js react-apollo apollo-client

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

镀铬透明主题色

是否有可能在chrome中使用像这样的半透明主题颜色?

<meta name="theme-color" content="rgba(0,0,0,0.5)">
Run Code Online (Sandbox Code Playgroud)

产生完全黑色。有没有办法让它工作?

css html5 google-chrome

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

Bitbucket Pipelines 访问其他节点存储库

我在我的 node.js 存储库之一中启用了 Bitbucket Pipelines,让它在每次提交时运行构建。我的存储库依赖于另一个 node.js 存储库。对于开发,我使用npm link.

我已经尝试了文件中git clone指定的那个存储库bitbucket-pipelines.yml,但是构建被该命令卡住了。我想这是因为 git 在那时要求进行身份验证。

有没有办法允许容器访问同一团队中的其他存储库?或者有没有更好的方法来解决这个问题?如果 Bitbucket Pipelines 不能做到这一点,我也可以切换到另一个 CI 工具——唯一的要求是它对小于 5 人的团队免费。

顺便提一句。如果可能,我想避免为 npm 私有包付费。

谢谢!

bitbucket node.js npm bitbucket-pipelines

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

解析器抛出错误时的GraphQL重定向

我正在使用graphql-server-express构建一个使用REST API的GraphQL服务器.

我遇到的情况是,当用户未经过身份验证以访问资源时,REST调用可能会返回301或401状态代码.我正在使用在客户端上设置的cookie,并在解析GraphQL查询时转发到REST API.

当发生此类错误时,是否可以向客户端发送301重定向以响应对GraphQL端点的调用?

我尝试了类似的东西res.sendStatus(301) …,formatError但这不能很好地graphql-server-express尝试在此之后设置标题.

我也试图graphqlExpress用这样的东西来短路中间件:

export default graphqlExpress((req, res) => {
  res.sendStatus(301);
  return;
});
Run Code Online (Sandbox Code Playgroud)

当客户端收到正确的结果时,服务器仍然会输出错误(在这种情况下TypeError: Cannot read property 'formatError' of undefined- 很可能是因为中间件接收到空选项).

有一个很好的方法如何使这个工作?谢谢!

redirect node.js graphql apollo-server

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

如何获取多对多字段的related_name?

我正在尝试获取多对多字段的related_name.m2m-field位于模型"Group"和"Lection"之间,并在组模型中定义如下:

lections = models.ManyToManyField(Lection, blank=True)
Run Code Online (Sandbox Code Playgroud)

该字段如下所示:

<django.db.models.fields.related.ManyToManyField object at 0x012AD690>
Run Code Online (Sandbox Code Playgroud)

印刷品field.__dict__是:

 {'_choices': [],  
 '_m2m_column_cache': 'group_id',  
 '_m2m_name_cache': 'group',  
 '_m2m_reverse_column_cache': 'lection_id',  
 '_m2m_reverse_name_cache': 'lection',  
 '_unique': False,  
 'attname': 'lections',  
 'auto_created': False,  
 'blank': True,  
 'column': 'lections',  
 'creation_counter': 71,  
 'db_column': None,  
 'db_index': False,  
 'db_table': None,  
 'db_tablespace': '',  
 'default': <class django.db.models.fields.NOT_PROVIDED at 0x00FC8780>,  
 'editable': True,  
 'error_messages': {'blank': <django.utils.functional.__proxy__ object at 0x00FC
7B50>,  
                    'invalid_choice': <django.utils.functional.__proxy__ object
at 0x00FC7A50>,  
                    'null': <django.utils.functional.__proxy__ object at 0x00FC7
A70>},  
 'help_text': <django.utils.functional.__proxy__ object at 0x012AD6F0>,  
 'm2m_column_name': <function _curried at 0x012A88F0>,  
 'm2m_db_table': <function …
Run Code Online (Sandbox Code Playgroud)

python django many-to-many django-models m2m

4
推荐指数
2
解决办法
6904
查看次数

分两步使用类型安全属性访问递归解析对象

我尝试将以下函数中的字符串类型替换为更具体的类型,以确保类型安全的属性访问:

import {get} from 'lodash';

const obj = {
  foo: 'foo',
  bar: {
    a: 'Hello',
    b: {c: 'World'}
  }
};

function factory(namespace?: string) {
  return function getter(key: string) {
    return get(obj, [namespace, key].filter((part) => part != null).join('.'));
  };
}

const getter = factory('bar');
getter('b.c'); // 'World'
Run Code Online (Sandbox Code Playgroud)

点符号表示嵌套的属性访问。它既可以出现在 中namespace,也可以出现在 中key

到目前为止,我发现我可以namespace使用这个实用程序输入:

type NestedKeyOf<ObjectType extends object> =
  {
    [Key in keyof ObjectType & (string | number)]: ObjectType[Key] extends object
      ? `${Key}` | `${Key}.${NestedKeyOf<ObjectType[Key]>}`
      : `${Key}`
  }[keyof …
Run Code Online (Sandbox Code Playgroud)

typescript

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

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