我想出了两个解决方案,但他们都没有感觉到.
第一解决方案
state.input
.onChange
在P中创建一个函数,它接收一个事件并设置state.input
.onChange
给C1作为a props
,让C1绑定this.props.onChange
到onChange
Foo.这有效.每当Foo的值改变时,它会触发一个setState
P,所以P将输入传递给C2.
但由于同样的原因,它感觉不太正确:我正在从子元素设置父元素的状态.这似乎背叛了React的设计原则:单向数据流.
这是我应该怎么做的,还是有更多的React-natural解决方案?
二解决方案:
把Foo放在P.
但是,当我构建我的应用程序时,我应该遵循这个设计原则 - 将所有表单元素放入render
最高级别的类中吗?
就像在我的例子中,如果我有一个大的C1渲染,我真的不想把整个render
C1放到render
P只是因为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那样喜欢它)
谢谢