小编Ste*_* L.的帖子

StyleSheet.create有什么意义

我正在阅读React Native文档/教程,我想知道StyleSheet.create函数的重点是什么.

例如,本教程包含以下代码:

const styles = StyleSheet.create({
  bigblue: {
    color: 'blue',
    fontWeight: 'bold',
    fontSize: 30,
  },
  red: {
    color: 'red',
  },
});
Run Code Online (Sandbox Code Playgroud)

但我不明白它与之间的区别:

const styles = {
  bigblue: {
    color: 'blue',
    fontWeight: 'bold',
    fontSize: 30,
  },
  red: {
    color: 'red',
  },
};
Run Code Online (Sandbox Code Playgroud)

react-native

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

启动应用程序时使用pg-promise验证数据库连接

我正在构建一个使用pg-promise模块连接到postgres数据库的快速应用程序.

我想确保启动应用程序服务器时数据库连接成功.换句话说,如果与数据库的连接失败,我想抛出一个错误.

我的server.js文件如下:

const express = require("express");

const databaseConfig= {
  "host": "localhost",
  "port": 5432,
  "database": "library_app",
  "user": "postgres"
};

const pgp = require("pg-promise")({});
const db = pgp(databaseConfig);

const app = express();
const port = 5000;

app.listen(port, (err) => {
  console.log(`running server on port: ${port}`);
});
Run Code Online (Sandbox Code Playgroud)

无论数据库连接是否有效,当前配置都将启动快速服务器,这不是我想要的行为.

我尝试浏览文档但找不到解决方案.我也试过了const db = pgp(databaseConfig).catch((err) => { // blow up });,但那不行,因为pgp没有回复承诺.

postgresql node.js express pg-promise

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

React Form Component onSubmit Handler不工作

我有以下React组件:

class Form extends React.Component {
  handleSubmit(e) {
    e.preventDefault();

    let loginInput = ReactDOM.findDOMNode(this.refs.login);

    // change Main component's state
    this.props.addCard(loginInput.value);

    // reset the form
    loginInput.value = '';
  }

  render() {
    return(
      <form onSubmit={this.handleSubmit}>
        <input placeholder="githug login" ref="login" />
        <button>Add Login</button>
      </form>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我希望在handleSubmit提交表单时调用该函数.我通过将函数添加到onSubmit处理程序来表明这一点.

该函数正在正确的时间调用.但是,该this函数的值是null.这对我来说是令人惊讶的,因为我预计它的价值this是React Component.thisnull 的事实对我来说是令人惊讶的,因为我正在使用官方React文档建议的非常相似的逻辑/代码.

我很感激帮助找出为什么this不是React组件,如预期的那样,以及如何修复代码.

reactjs

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

Ruby 的数组组合方法

我正在解决有关 Ruby Monk 的 Ruby Primer 的问题。

问题陈述给定一个具有不同数字的 3 位或 4 位数字,返回一个由这些数字组成的所有唯一数字的排序数组。示例:给定:123 返回:[123, 132, 213, 231, 312, 321]

我认为 Array#combination 方法可以解决问题。我的代码如下所示:

def number_shuffle(number)
  # take integer and turn it into an array of digits
  digits = Array.new

  number.to_s.split('').each do |element|
    digits << element.to_i
  end

  # shuffle the elements
  return digits.combination(digits.length).to_a
end

puts number_shuffle(123)
Run Code Online (Sandbox Code Playgroud)

但是上面的代码返回:

1
2
3
Run Code Online (Sandbox Code Playgroud)

不知道我在这里做错了什么。我认为文档说得很清楚:

http://www.ruby-doc.org/core-2.2.0/Array.html#method-i-combination

任何帮助表示赞赏。

ruby arrays

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

在 Ruby 中,返回“可枚举”是什么意思

我试图理解以下 Ruby 代码:

digits.each_with_index.inject(0) do |decimal, (digit, index)|
      decimal + digit * 2**index
    end
Run Code Online (Sandbox Code Playgroud)

(作为参考,digits是一种返回数组的方法,其中每个元素都是整数)。

令我困惑的代码部分是.each_with_index.inject(0). 我知道该each_with_index方法的作用,并且我知道该inject方法的作用,但我不确定将两者链接在一起是如何工作的。到底发生了什么?

我试图查看 的文档each_with_index,我想我遇到问题的部分如下:“如果没有给出块,则返回一个枚举器。”

我想所有这些归结为什么是枚举器?

ruby

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

变量定义与函数定义的基本区别

我正在通过这本书学习球拍Realm of Racket.我注意到定义变量和定义函数是通过相同的关键字完成的define.这让我想到了一个不带参数的函数和简单地返回值之间的根本区别5,以及一个返回值的变量5.即:

(define fiveVar 5)

(define (fiveFun)
  5)
Run Code Online (Sandbox Code Playgroud)

(抱歉,如果驼峰不是正确的命名惯例 - 只是拿起书而不知道任何Lisp).

乍一看,在我看来,我只是5在这两种情况下都给出了一个名称.事实上,我甚至可以重新附加名称fiveFun:(set fiveFun 6),就像我可以使用变量一样.

因此,在我看来,定义变量和定义函数之间没有区别.在这两种情况下,我都给数据类型命名.在函数数据类型的情况下,可以应用它,而数字则不能.

racket

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

需要Ruby Koans类或模块

我在Ruby Koans中收到以下错误:

AboutHashes#test_accessing_hashes_with_fetch已经破坏了你的业力.

师父说:你还没有达到启蒙.我感到沮丧.不要害怕寻求帮助.

您寻求的答案......所需的课程或模块

请冥想下面的代码:/home/s/Downloads/github/rubykoans/about_hashes.rb:26:in`test_accessing_hashes_with_fetch'

有问题的行是以下方法的一部分:

def test_accessing_hashes_with_fetch
  hash = { :one => "uno" }
  assert_equal "uno", hash.fetch(:one)
  assert_raise(nil) do
    hash.fetch(:doesnt_exist)
  end
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它是要求一个类或模块,所以我很困惑,因为这不是我以前在Koans中遇到的错误.

ruby

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

概念化Ruby中的枚举器和惰性枚举器

我需要一些帮助来概念化Ruby中的Lazy Enumerator对象.

我认为Enumerator对象的方式是作为集合的"有状态"版本.该对象理解哪些元素是集合的一部分,以及应该产生的"下一个"元素是什么.它是一个知道它的元素是1,2和3的对象,它已经产生了1和2,因此如果被要求它将产生3.

假设Enumerator的概念化是正确的,我对Lazy Enumerator的工作方式很困难.Lazy Enumerator是由"常规"枚举器构建的,但是不应该事先计算它的集合.例如,来自The Ruby Way:

enum = (1..Float::INFINITY).each
lazy = enum.lazy
odds = lazy.select(&:odd)
Run Code Online (Sandbox Code Playgroud)

如果Lazy Enumerator是由Lazy Enumerator构建的,那么Lazy Enumerator是如何懒惰的,因为我正在做Enumerator部分,这可能不是懒惰的,首先呢?

ruby

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

npm不允许我添加标签

我正在使用how-to-npm来学习一些基本的npm命令。练习之一是向模块添加标签。我正在运行以下命令:npm dist-tag add learnyounode@1.1.0 ["hello"],并遇到以下错误:

0 info it worked if it ends with ok
1 verbose cli [ 'node',
1 verbose cli   '/home/ubuntu/.nvm/v0.10.35/bin/npm',
1 verbose cli   'dist-tag',
1 verbose cli   'add',
1 verbose cli   'learnyounode@1.0.0',
1 verbose cli   '[hello]' ]
2 info using npm@2.13.0
3 info using node@v0.10.35
4 verbose dist-tag add [hello] to learnyounode@1.0.0
5 silly mapToRegistry name learnyounode
6 silly mapToRegistry using default registry
7 silly mapToRegistry registry http://localhost:15443/
8 silly mapToRegistry uri http://localhost:15443/learnyounode …
Run Code Online (Sandbox Code Playgroud)

node.js npm

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

Elixir,模式匹配和嵌套列表

我正在阅读Dave Thomas Programming Elixir的书,我对本书模式匹配部分的一些结果感到困惑.特别是,请看以下示例:[a] = [[1, 2, 3]]

我的解释是比赛应该成功,但价值a应该是[1, 2, 3]; 相反,它是[[1, 2, 3]].

有人可以帮我解释一下结果如何成为匹配运算符整个右侧的值?为什么输出的输出a = [[1, 2, 3]]没有什么不同[a] = [[1, 2, 3]]?

list elixir

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

为什么以下类型构造函数的参数少于数据构造函数?

我有以下类型声明:

data Quadruple a b = Quad a a b b
Run Code Online (Sandbox Code Playgroud)

(你们中的一些人可能会认识到另一个Haskell教程中的这个声明).

我理解代码的意图:创建一个名为Quadruple的数据类型.它有一个名为Quad的单一类型构造函数,它带有四个值.前两个值必须具有相同的类型,并且后两个值必须具有相同的类型.

我无法向自己解释为什么类型构造函数的参数少于数据构造函数.我能想到的唯一解释是Haskell能够从类型声明中推断出,如果第一个值是a类型,那么第二个值也是如此,如果第三个值是b类型,那么第四个值也是如此.

它是否正确?我在这里错过了什么吗?我知道Haskell有类型推断因此这是有道理的,但我不想用错误的心理模型运行.(第二次尝试学习Haskell).

haskell

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

为什么count ++在作为参数传递时不起作用

我有下面的代码.如果您将代码传递给列表,它将提供该位置的值(它是零索引).这段代码有效,但如果我用count ++替换count = count + 1(在条件的最后一个分支中),它就不再起作用了.有人可以帮我理解为什么吗?

注意:如果您调用此函数:

var list = {value: 10, rest: {value: 10, rest: {value: 30, rest: null}}}

nth(list, 1)
Run Code Online (Sandbox Code Playgroud)

输出应为20.

function nth(list, index, count) {
    if (count === undefined) {
        count = 0;
    }

    if (count === index) {
        return list.value;
    }
    else if (list.rest === null) {
        return undefined;
    }
    else {
        // note that count++ will not work here
        return nth(list.rest, index, count = count + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript arguments increment

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