我正在阅读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) 我正在构建一个使用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没有回复承诺.
我有以下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组件,如预期的那样,以及如何修复代码.
我正在解决有关 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 代码:
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,我想我遇到问题的部分如下:“如果没有给出块,则返回一个枚举器。”
我想所有这些归结为什么是枚举器?
我正在通过这本书学习球拍Realm of Racket.我注意到定义变量和定义函数是通过相同的关键字完成的define.这让我想到了一个不带参数的函数和简单地返回值之间的根本区别5,以及一个返回值的变量5.即:
(define fiveVar 5)
(define (fiveFun)
5)
Run Code Online (Sandbox Code Playgroud)
(抱歉,如果驼峰不是正确的命名惯例 - 只是拿起书而不知道任何Lisp).
乍一看,在我看来,我只是5在这两种情况下都给出了一个名称.事实上,我甚至可以重新附加名称fiveFun:(set fiveFun 6),就像我可以使用变量一样.
因此,在我看来,定义变量和定义函数之间没有区别.在这两种情况下,我都给数据类型命名.在函数数据类型的情况下,可以应用它,而数字则不能.
我在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中的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部分,这可能不是懒惰的,首先呢?
我正在使用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) 我正在阅读Dave Thomas Programming Elixir的书,我对本书模式匹配部分的一些结果感到困惑.特别是,请看以下示例:[a] = [[1, 2, 3]]
我的解释是比赛应该成功,但价值a应该是[1, 2, 3]; 相反,它是[[1, 2, 3]].
有人可以帮我解释一下结果如何成为匹配运算符整个右侧的值?为什么输出的输出a = [[1, 2, 3]]没有什么不同[a] = [[1, 2, 3]]?
我有以下类型声明:
data Quadruple a b = Quad a a b b
Run Code Online (Sandbox Code Playgroud)
(你们中的一些人可能会认识到另一个Haskell教程中的这个声明).
我理解代码的意图:创建一个名为Quadruple的数据类型.它有一个名为Quad的单一类型构造函数,它带有四个值.前两个值必须具有相同的类型,并且后两个值必须具有相同的类型.
我无法向自己解释为什么类型构造函数的参数少于数据构造函数.我能想到的唯一解释是Haskell能够从类型声明中推断出,如果第一个值是a类型,那么第二个值也是如此,如果第三个值是b类型,那么第四个值也是如此.
它是否正确?我在这里错过了什么吗?我知道Haskell有类型推断因此这是有道理的,但我不想用错误的心理模型运行.(第二次尝试学习Haskell).
我有下面的代码.如果您将代码传递给列表,它将提供该位置的值(它是零索引).这段代码有效,但如果我用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) ruby ×4
node.js ×2
arguments ×1
arrays ×1
elixir ×1
express ×1
haskell ×1
increment ×1
javascript ×1
list ×1
npm ×1
pg-promise ×1
postgresql ×1
racket ×1
react-native ×1
reactjs ×1