小编Kad*_*BOT的帖子

为什么JSX道具不应该使用箭头函数或绑定?

我正在使用我的React app运行lint,我收到此错误:

error    JSX props should not use arrow functions        react/jsx-no-bind
Run Code Online (Sandbox Code Playgroud)

这就是我正在运行箭头功能(内部onClick)的地方:

{this.state.photos.map(tile => (
  <span key={tile.img}>
    <Checkbox
      defaultChecked={tile.checked}
      onCheck={() => this.selectPicture(tile)}
      style={{position: 'absolute', zIndex: 99, padding: 5, backgroundColor: 'rgba(255, 255, 255, 0.72)'}}
    />
    <GridTile
      title={tile.title}
      subtitle={<span>by <b>{tile.author}</b></span>}
      actionIcon={<IconButton onClick={() => this.handleDelete(tile)}><Delete color="white"/></IconButton>}
    >
      <img onClick={() => this.handleOpen(tile.img)} src={tile.img} style={{cursor: 'pointer'}}/>
    </GridTile>
  </span>
))}
Run Code Online (Sandbox Code Playgroud)

这是一个应该避免的不良做法吗?什么是最好的方法呢?

javascript jsx ecmascript-6 reactjs arrow-functions

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

如何使用带有ReasonML的npm包?

我对ReactJS很有经验,现在我正在努力学习ReasonML.但是我一直在努力理解的一件事是如何使用React/Reason导入npm包.

我不清楚网站上的说明(https://reasonml.github.io/guide/javascript/interop/).

那么,如果我有一个React/Reason项目并且想要使用npm包,我该怎么办呢?如何使用Reason lang导入它?

reason bucklescript

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

是否可以将 Web Assembly (wasm) 文件反编译为特定的编程语言?

目前大多数编程语言,都可以编译成 WebAssembly(官方或者通过外部包)。

所以我想知道......是否可以反编译Web程序集文件?那么我们可以用一种语言编写的代码可以编译为.wasm,并使用另一种语言反编译它?然后,生成.java.js.py.go和等,从.wasm文件。是否可以?

webassembly

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

如何转换:在Android上通过整个屏幕翻译元素?

我正在研究React Native中的一些动画,我注意到在Android上,transform: [{ translateY: height }]并没有像在iOS上那样占据整个屏幕.在Android上它只需要它自己的高度.如何让Android动画看起来像iOS?

安卓:
Android的

iOS版:
iOS版

android ios css-transforms reactjs react-native

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

GitLab CI与JS Linting

我有0次GitLab持续集成的经验,我需要设置一个作业来运行.js文件上的ESLint.

我已经阅读了GitLab CI和Pipeline文档,以及一些Git Hooks,但我仍然不知道如何设置这个,所以任何详细的,从一开始的答案开始是值得赞赏的.

谢谢,

javascript gitlab eslint gitlab-ci

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

使用与Lamda功能和资源相同的Cognito UserPool?

我正在使用无服务器框架,我需要覆盖Lambda函数创建的UserPool的一些默认值.这样做的正确方法是什么?我serverless.yml正在创建两个user-pool(相同的名称),一个用于lambda函数,另一个用于UserPool资源:

service: userpool

custom:
  stage: dev
  poolName: user-pool

provider:
  name: aws
  runtime: nodejs6.10
  stage: ${opt:stage, self:custom.stage}

functions:
  preSignUp:
    handler: handler.preSignUp
    events:
      - cognitoUserPool:
          pool: ${self:custom.poolName}
          trigger: PreSignUp

resources:
  Resources:
    UserPool:
      Type: "AWS::Cognito::UserPool"
      Properties:
        UserPoolName: ${self:custom.poolName}
        AliasAttributes:
          - email
        AutoVerifiedAttributes:
          - email
        Schema:
          - Name: name
            AttributeDataType: String
            Mutable: true
            Required: true
          - Name: email
            AttributeDataType: String
            Mutable: false
            Required: true
Run Code Online (Sandbox Code Playgroud)

lambda amazon-web-services amazon-cognito serverless-framework

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

Rust 宏生成多个单独的测试

是否可以有一个生成独立测试的宏?我有两个文本文件,一个带有输入,另一个带有输出。文本文件中的每一新行都代表一个新测试。目前,这就是我运行测试的方式:

    #[test]
    fn it_works() {
        let input = read_file("input.txt").expect("failed to read input");
        let input = input.split("\n").collect::<Vec<_>>();

        let output = read_file("output.txt").expect("failed to read output");
        let output = output.split("\n").collect::<Vec<_>>();

        input.iter().zip(output).for_each(|(a, b)| {
            println!("a: {}, b: {}", a, b);
            assert_eq!(b, get_result(a));
        })

Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,如果一个测试失败,那么所有测试都会失败,因为单个测试中存在循环。我需要每次迭代都是一个单独且孤立的测试,而不必重复自己。

所以我想知道是否可以通过使用宏来实现这一点?

理想情况下,宏会输出如下内容:

    #[test]
    fn it_works_1() {
        let input = read_file("input.txt").expect("failed to read input");
        let input = input.split("\n").collect::<Vec<_>>();

        let output = read_file("output.txt").expect("failed to read output");
        let output = output.split("\n").collect::<Vec<_>>();

        assert_eq!(output[0], get_result(input[0])); // first test
    }

    #[test]
    fn it_works_2() { …
Run Code Online (Sandbox Code Playgroud)

testing macros rust

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

如何避免 Rust 中的 impl 重复?

我有以下实现,但我不想重复自己。如何在不重复的情况下使用在不同结构上具有相同主体的实现?

impl Message for CreateHero {
    type Result = Result<Hero, Error>;
}

impl Message for SearchHero {
    type Result = Result<Hero, Error>;
}

impl Message for DeleteHero {
    type Result = Result<Hero, Error>;
}
Run Code Online (Sandbox Code Playgroud)

dry rust

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

如何在Ramda中访问构造函数'this'?

每当我尝试访问任何this内部的Ramda Compose函数(R.compose)时,我得到undefined,也许是因为this"绑定"到Ramda Compose函数.

如何this访问Class构造函数中启动的内容?

this.stategetContent在下面的代码中未定义:

export default class FaqStore {
  constructor() {
    this.state = new FaqState()

    this.getParents()
  }

  getContent = R.concat(this.state.parents, R.prop('content'))
  getParents = FaqService.getParents().then(this.getContent)
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 ramda.js

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

如何让Web Workers在执行计算时接收新数据?

我想使用Web Workers对数组进行排序.但是这个数组可能会随着时间的推移接收到新值,而worker仍在执行sort函数.

所以我的问题是,如何在收到新项目后"停止"工作者的排序计算,这样它就可以对该项目执行数组排序,同时仍然保留已经进行的排序?

例:

let worker = new Worker('worker.js');
let list = [10,1,5,2,14,3];
worker.postMessage({ list });
setInterval(() => worker.postMessage({ num: SOME_RANDOM_NUM, list }), 100);

worker.onmessage = event => {
  list = event.data.list;
}
Run Code Online (Sandbox Code Playgroud)

让我们说,我已经过了50岁,工人在此之前在排序方面取得了一些进展,现在我有这样的事情: [1, 2, 3, 10, 5, 14, 50].这意味着排序在索引处停止3.所以我将这个new数组传递回worker,因此它可以继续从位置进行排序3.

我怎样才能实现这一点,因为没有办法暂停/恢复网络工作者?

javascript sorting interrupt worker web-worker

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