我想出了两个解决方案,但他们都没有感觉到.
第一解决方案
state.input.onChange在P中创建一个函数,它接收一个事件并设置state.input.onChange给C1作为a props,让C1绑定this.props.onChange到onChangeFoo.这有效.每当Foo的值改变时,它会触发一个setStateP,所以P将输入传递给C2.
但由于同样的原因,它感觉不太正确:我正在从子元素设置父元素的状态.这似乎背叛了React的设计原则:单向数据流.
这是我应该怎么做的,还是有更多的React-natural解决方案?
二解决方案:
把Foo放在P.
但是,当我构建我的应用程序时,我应该遵循这个设计原则 - 将所有表单元素放入render最高级别的类中吗?
就像在我的例子中,如果我有一个大的C1渲染,我真的不想把整个renderC1放到renderP只是因为C1有一个表单元素.
我该怎么办?
我正在学习Vim的,不能换我的头周围之间的差异word和WORD.
我从Vim手册中得到了以下内容.
单词由一系列字母,数字和下划线或一系列其他非空白字符组成,用空格(空格,制表符)分隔.可以使用'iskeyword'选项更改此设置.空行也被认为是一个单词.
WORD由一系列非空白字符组成,用空格分隔.空行也被认为是WORD.
我觉得word并且WORD是同一件事.它们都是用空格分隔的一系列非空白字符.空行可以视为word和WORD.
问题:
它们之间有什么区别?
为什么/时,会有人使用WORD过word?
我已经做了谷歌和SO搜索,但其搜索引擎解释WORD为只是word使这就像我在寻找Vim word vs word过程中,并不会发现任何有用的东西.
我是Android开发的新手,我有过Java,C#,Python等方面的经验.我最喜欢Python,我想用它来编写Android应用程序.
然后我看到了这个问题:
有没有办法在Android上运行Python?
提到的最多的答案Kivy和ASE(现在SL4A和包括PY4A).
然而,一些谷歌上搜索后,我是不是能够找到的有关之间的差异的任何有用的信息Kivy和PY4A.搜索之间的差异Kivy和SL4A是无果而终,太.
因此,对于Kivy和PY4A,
可有人解释,在宽松的条件:
-是它们之间有什么异同?
- 他们的优点和缺点是什么?
- 还有其他好的选择吗?
<s>和之间有什么区别<del>?我在这里读到,<b>和之间存在语义差异<strong>,这是否适用于<s>和<del>?此外,搜索引擎如何解释这些语义差异(如果有的话)以及它们对排名有何影响?是否有其他标签会影响搜索排名?
我正在编写CoffeeScript中的代码,因为我一直在用它编写React.
这是基本结构.
{ div, input } = React.DOM
Outer = React.createClass
render: ->
div { id: 'myApp' },
Inner()
Inner = React.createClass
render: ->
input { id: 'myInput', ref: 'myInput' }
Run Code Online (Sandbox Code Playgroud)
toggle我的外类上有一个方法,可以通过按快捷方式触发.它切换了我的应用程序的可见性.
当我的应用程序从隐藏切换到显示时,我想专注于输入.
现在切换方法看起来或多或少像这样:
Outer = React.createClass
render: ->
......
hide: ->
@setState { visible: no }
show: ->
@setState { visible: yes }
$('#myInput').focus() # jQuery
# I want to do something like
# @refs.myInput.getDOMNode().focus()
# But @refs here is empty, it doesn't contain the refs in Inner …Run Code Online (Sandbox Code Playgroud) >>> import math
>>> math.pi
3.141592653589793
>>> math.pi = 3
>>> math.pi
3
>>> import math
>>> math.pi
3
Run Code Online (Sandbox Code Playgroud)
初步问题:为什么我不能math.pi回来?
我以为import会将所有已定义的变量和函数导入当前范围.如果变量名已经存在于当前范围内,那么它将替换它.
是的,它确实取代了它:
>>> pi = 3
>>> from math import *
>>> pi
3.141592653589793
Run Code Online (Sandbox Code Playgroud)
然后我想也许这个math.pi = 3任务实际上改变了math class(或者它是math module?)的属性,这是import math导入的.
我是正确的:
>>> import math
>>> math.pi
3.141592653589793
>>> math.pi = 3
>>> from math import *
>>> pi
3
Run Code Online (Sandbox Code Playgroud)
所以,似乎:
如果你这样做import x,那么它x就像一个类似的东西进口.如果您对x.property进行更改,则更改将在模块中保留,以便每次再次导入时,它都是修改后的版本.
真实的问题 …
我正在浏览ocaml的标准库,并在map.ml文件中遇到了这段代码.
module type S =
sig
type key
type +'a t
val empty: 'a t'
Run Code Online (Sandbox Code Playgroud)
我想知道为什么会这样type +'a t,为什么作者使用它而不是简单'a t.
它的行为很奇怪,我无法推断出它的用法.
# type +'a t = 'a list;;
type 'a t = 'a list
# type +'a t = +'a list;;
Characters 13-14:
type +'a t = +'a list;;
^
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)
谢谢
对于我的回购,假设它被称为 top
top\
.gitignore
foo\
bar\
Run Code Online (Sandbox Code Playgroud)
我希望CtrlP列出文件
foo\ .gitignore定义不被忽略如果我进入top\foo\,并从那里打开vim,1会满意而不是2.
如果我打开vim top\,2会满意但不是1.
我如何实现1和2?
我尝试了这个gitignore vim脚本,但它只gitignore在我在repo的根文件夹中打开vim时解析,所以我不能同时做1和2.
同样的let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""',ag不试图去repo root并从那里读gitignore.
设置g:ctrlp_working_path_mode为r让CtrlP .gitignore在顶级文件夹中受到尊重,但是top\Ctrl 下会列出所有内容.我只想要文件foo\.
谢谢.
我有Simpletron.cpp一个空文件,Simpletron.h它声明了一个Simpletron类:
class Simpletron
{
public:
Simpletron();
};
Run Code Online (Sandbox Code Playgroud)
我打电话给Simpletron()我的main.cpp:
#include <iostream>
#include "Simpletron.h"
int main(int argc, char *argv[])
{
Simpletron s();
std::cin.get();
}
Run Code Online (Sandbox Code Playgroud)
主要功能运行平稳,没有任何警告或错误.这是为什么?如果头文件没有可以链接到的补充,那么如何编译呢?
我正在使用Emacs + Typerex进行OCaml编程.我之前在Windows中尝试过OcaIDE.它不如Typerex好,但确实有一个很好的功能:Ocaml Browser

无论如何在Typerex中有这样的浏览器吗?(linux中的eclipse + OcaIDE可能会起作用,但我不像typerex那样喜欢它)
谢谢