小编kuk*_*krt的帖子

为什么以及何时需要在React中绑定函数和eventHandler?

class SomeClass extends Component{
  someEventHandler(event){
  }
  render(){
    return <input onChange={------here------}>
  }
}
Run Code Online (Sandbox Code Playgroud)

我看到不同版本的------here------部分.

// 1
return <input onChange={this.someEventHandler.bind(this)}>

// 2
return <input onChange={(event) => { this.someEventHandler(event) }>

// 3
return <input onChange={this.someEventHandler}>
Run Code Online (Sandbox Code Playgroud)

版本有何不同?或者只是一个偏好问题?


谢谢大家的回答和评论.都是有帮助的,我强烈建议阅读此链接FIRST如果你是这个困惑了我.
http://blog.andrewray.me/react-es6-autobinding-and-createclass/

javascript ecmascript-6 reactjs es6-class

17
推荐指数
2
解决办法
4362
查看次数

vscode(vscode-ruby + rubocop)如何在保存时自动更正?

环境

  • vscode版本1.19.1(1.19.1)
  • rubocop(0.52.1)
  • Darwin mbp 16.7.0 Darwin内核版本16.7.0:2017年10月4日星期三00:17:00 PDT 2017; root:xnu-3789.71.6~1/RELEASE_X86_64 x86_64
  • ruby 2.3.5p376(2017-09-14修订版59905)[x86_64-darwin16]

跟着https://github.com/rubyide/vscode-ruby#linters安装了所有宝石,并像这样编辑了settings.json.

{

  "ruby.rubocop.executePath": "/Users/ac/.rbenv/shims/",
  "ruby.rubocop.onSave": true,
  "ruby.lint": {
    "ruby": {
      "unicode": true //Runs ruby -wc -Ku
    },
    "reek": true,
    "rubocop": {
      "lint": true,
      "rails": true
    },
    "fasterer": true,
    "debride": {
      "rails": true //Add some rails call conversions.
    },
    "ruby-lint": true
  },
  "ruby.locate": {
    "include": "**/*.rb",
    "exclude": "{**/@(test|spec|tmp|.*),**/@(test|spec|tmp|.*)/**,**/*_spec.rb}"
  }

}
Run Code Online (Sandbox Code Playgroud)

在vscode上,代码突出显示工作正常.
*只需注意,您会看到已安装的扩展程序以及问题选项卡中的警告.

rubocop工作正常

我受到了压抑,vscode-ruby并且rubocop会自动纠正文件保存中的缩进和警察规则,但显然它没有.
如果我希望它格式化我的代码prettier,我应该如何设置它?

ruby rubocop visual-studio-code

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

YouTube 如何阻止浏览器在 iPhone 上休眠?

环境

  • iOS 14.4.2(Safari)
  • 铬 91.4472.80

当我试图找到一种方法来防止我的 iPhone 在浏览器页面打开时进入睡眠状态时,我发现了 3 种方法。

  1. 使用屏幕唤醒锁定 API https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API
  2. 定期调用window.location.href并停止
  3. 通过用户交互播放视频

对于#1,这不适用于 iPhone,应该适用于 Android。
#2,似乎在 iPhone 上的 safari 或 chrome 上都不起作用。
#3,也不起作用(甚至在用户交互后播放视频)。

我尝试了https://github.com/richtr/NoSleep.js/但并没有阻止睡眠。
我还尝试了https://github.com/roldanjr/use-stay-awake,它在全屏中打开了一个空白视频(这可能通过添加https://developer.mozilla.org/en-US/docs/Web来修复/HTML/Element/video#attr-playsinline

然后,我注意到 Youtube 的浏览器版本阻止我的手机在播放视频时进入睡眠状态(我将睡眠时间设置为 30 秒,它可以播放 10 分钟的视频而不会自行关闭)。

有谁知道他们使用什么样的技术来做到这一点?

youtube video ios wakelock

8
推荐指数
0
解决办法
1004
查看次数

在 cron 中运行时,运行“docker-compose run”挂起

环境

? uname -a
Linux ubuntu 5.4.0-66-generic #74-Ubuntu SMP Wed Jan 27 22:54:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

?
docker -v Docker 版本 20.10.4,构建 d3cb89e

? docker-compose -v
docker-compose 版本 1.28.4,构建 cabd5cfb

? lsb_release -a
没有可用的 LSB 模块。
发行商 ID:Ubuntu
描述:Ubuntu 20.04.2 LTS
版本:20.04
代号:focus

问题

我一直在使用 ubuntu 18.04 版,我的 docker 和 docker-compose 运行得很好。我没有定期更新服务器,但就在 2 天前,我做了sudo apt-get update && apt-get upgrade。然后一切都开始变得奇怪了。

我曾经像这样从主机的 cron 调用 docker-compose 服务。

0 * * * * cd /project/folder && docker-compose run --rm …
Run Code Online (Sandbox Code Playgroud)

ubuntu cron docker docker-compose

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

ruby serialport gem,谁负责检查奇偶校验错误?

宝石

serialport(1.0.4)
作者:Guillaume Pierronnet,Alan Stern,Daniel E. Shipton,Tobin
Richard,Hector Parra,Ryan C. Payne
主页:http://github.com/hparra/ruby-serialport/
使用RS-的图书馆232个串口.

我正在使用这个宝石,我的设备的规格如下.

  • 9600
  • 7位
  • 1站点
  • 甚至平价

当我收到如下数据时,解压缩的数据仍然带有奇偶校验位.

sp = SerialPort.new("/dev/serial-device", 9600, 7, 1, SerialPort::EVEN)
data = sp.gets
data.chars.each do |char|
  puts char.unpack("B*")
end
Run Code Online (Sandbox Code Playgroud)

恩.如果sp收到a,则解压缩的数据11100001代替01100001,因为它是偶然的奇偶校验.


要将字节转换回它应该是什么,我喜欢这样

data = sp.gets #gets 11100001 for 'a' (even parity)
data.bytes.to_a.each do |byte|
  puts (byte & 127).chr
end
Run Code Online (Sandbox Code Playgroud)

现在,对我而言,这是一种低级别的方式.我期待serialport gem进行这种奇偶校验,但据我读到它的文档,它没有说明奇偶校验.

我错过了一个已在gem中实现的方法,或者我上面的工作是不必要的,因为我的责任是检查奇偶校验并发现错误?

ruby serial-port ruby-1.9

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

rails4 solr sunspot多核,分离索引如何使其工作?

$ rails -v
Rails 4.0.0

$ cat Gemfile.lock | grep solr
      rsolr (~> 1.0.7)
    sunspot_solr (2.0.0)
    rsolr (1.0.9)
      sunspot_solr (>= 1.2)
  sunspot_solr!


$ cat Gemfile.lock | grep sunspot
  remote: https://github.com/sunspot/sunspot.git
    sunspot (2.0.0)
    sunspot_rails (2.0.0)
      sunspot (= 2.0.0)
    sunspot_solr (2.0.0)
    sunspot-rails-tester (1.0.0)
      sunspot_rails (>= 1.2)
      sunspot_solr (>= 1.2)
  sunspot-rails-tester
  sunspot_rails!
  sunspot_solr!
Run Code Online (Sandbox Code Playgroud)

http://localhost:8982/solr/#/
版本
solr-spec
4.2.0.2013.03.06.22.32.13
solr-impl
4.2.0 1453694 - rmuir - 2013-03-06 22:32:13
lucene-spec
4.2.0
lucene-impl
4.2.0 1453694 - rmuir - 2013 -03-06 22:25:29

我要做的是:
运行2个不同的solr实例同时运行.
分离索引和从分离的rails环境(例如生产和开发)中搜索的所有内容.

我面临的问题:
如果我尝试运行2个独立的solrs,它们会运行并启动,但它们不会响应它们.

我告诉他们一个问题,但似乎没有人回答.
https://github.com/sunspot/sunspot/issues/435 …

solr ruby-on-rails sunspot solr4 ruby-on-rails-4

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

在rails + actioncable + redis pubsub上的apollo graphql的订阅

我正在尝试使用apollo + Rails actioncable(redis pubsub后端)存档graphql订阅.

问题

目前,我使用graphql,红宝石,做querymutation罚款,但创业板不支持subscription.

思念

我只有一点关于graphql和redis的知识,所以这听起来很愚蠢,但我想我是否设置了一个独立的graphql服务器(仅用于subscription)连接到rails正在使用的同一个redis数据库,从rails广播应该通过graphql服务器获取对redis的actioncable吗?

在此输入图像描述

轨道

broadcast像往常一样发送哈希数据,没有变化.

ActionCable.server.broadcast(...)
Run Code Online (Sandbox Code Playgroud)

分离的graphql服务器

使用带有Redis Pub Sub的GraphQL订阅以某种方式设置graphql服务器,并通过redis等待rails的广播.

这一切都可行吗?

或者是否有其他可能的方式来实现rails中的graphql订阅?

ruby-on-rails redis graphql actioncable apollostack

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

当您无法访问官方 GATT XML 文件时,如何构建 BLE 应用程序?

要构建 BLE 应用程序,您需要

  1. 服务 UUID
  2. 服务的特征 UUID
  3. 特征的权限(读/写/通知...)
  4. 如果要发送任何数据,则需要知道值类型 (uint8_t, uint16_t ...)

举个例子,如果是环境感知服务,我可以从这个页面阅读这个PDF,然后在下面找到,UUID是。然后,我可以去读取相同的PDF和发现(虽然它在文本出于某些原因,它不能被搜索)下,与UUID是。Environmental SensingGATT Service0x181ATemperatureT emperatureTemperatureGATT Characteristic and Object Type0x2A6E

好的,到目前为止一切顺利。然后我撞墙了。要通知的数据大小(例如 uint16_t 或其他)如何或允许哪些权限(例如读/写...)?

经过几个小时的谷歌搜索,我终于找到了这个 github这个 github。但这不是官方的,有人复制并疏散了他们。

当您没有官方 XML 文件可供查找时,您如何有效地编写 BLE 应用程序?

bluetooth bluetooth-lowenergy gatt bluetooth-gatt esp32

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

无法在客户端访问gatsby环境变量

我如下设置了.env文件和gatsby-config.js。

// .env.development
GATSBY_API_URL=https://example.com/api
Run Code Online (Sandbox Code Playgroud)
// gatsby-config.js
console.log(process.env)
...
...
Run Code Online (Sandbox Code Playgroud)

尽管何时运行gatsby develop,它显示了包括在内的所有环境变量GATSBY_API_URL: 'https://example.com/api',但浏览器上没有环境变量。

// client side
console.log(process.env)  // => this will return {}  empty object
Run Code Online (Sandbox Code Playgroud)

我认为我遵循了https://www.gatsbyjs.org/docs/environment-variables/,并GATSBY_在var中添加了前缀。

为什么我在客户端看不到env var?

gatsby info --clipboard

  System:
    OS: macOS Sierra 10.12.6
    CPU: (4) x64 Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz
    Shell: 5.2 - /bin/zsh
  Binaries:
    Node: 11.2.0 - /usr/local/bin/node
    Yarn: 1.9.4 - /usr/local/bin/yarn
    npm: 6.4.1 - /usr/local/bin/npm
  Browsers:
    Chrome: 70.0.3538.110
    Firefox: 63.0.3
    Safari: 12.0.2
  npmPackages:
    gatsby: ^2.0.61 => …
Run Code Online (Sandbox Code Playgroud)

reactjs gatsby dotenv

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