小编oct*_*ref的帖子

React - 将表单元素状态传递给兄弟/父元素的正确方法?

  • 假设我有一个React类P,它呈现两个子类C1和C2.
  • C1包含一个输入字段.我将此输入字段称为Foo.
  • 我的目标是让C2对Foo的变化作出反应.

我想出了两个解决方案,但他们都没有感觉到.

第一解决方案

  1. 分配P状态,state.input.
  2. onChange在P中创建一个函数,它接收一个事件并设置state.input.
  3. 将此传递onChange给C1作为a props,让C1绑定this.props.onChangeonChangeFoo.

这有效.每当Foo的值改变时,它会触发一个setStateP,所以P将输入传递给C2.

但由于同样的原因,它感觉不太正确:我正在从子元素设置父元素的状态.这似乎背叛了React的设计原则:单向数据流.
这是我应该怎么做的,还是有更多的React-natural解决方案?

二解决方案:

把Foo放在P.

但是,当我构建我的应用程序时,我应该遵循这个设计原则 - 将所有表单元素放入render最高级别的类中吗?

就像在我的例子中,如果我有一个大的C1渲染,我真的不想把整个renderC1放到renderP只是因为C1有一个表单元素.

我该怎么办?

reactjs

175
推荐指数
5
解决办法
12万
查看次数

Vim:字vs WORD

我正在学习Vim的,不能换我的头周围之间的差异wordWORD.

我从Vim手册中得到了以下内容.

单词由一系列字母,数字和下划线或一系列其他非空白字符组成,用空格(空格,制表符)分隔.可以使用'iskeyword'选项更改此设置.空行也被认为是一个单词.

WORD由一系列非空白字符组成,用空格分隔.空行也被认为是WORD.

我觉得word并且WORD是同一件事.它们都是用空格分隔的一系列非空白字符.空行可以视为wordWORD.

问题:
它们之间有什么区别?
为什么/时,会有人使用WORDword

我已经做了谷歌和SO搜索,但其搜索引擎解释WORD为只是word使这就像我在寻找Vim word vs word过程中,并不会发现任何有用的东西.

vim

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

Kivy和PY4A之间的区别

我是Android开发的新手,我有过Java,C#,Python等方面的经验.我最喜欢Python,我想用它来编写Android应用程序.
然后我看到了这个问题:
有没有办法在Android上运行Python?
提到的最多的答案KivyASE(现在SL4A和包括PY4A).
然而,一些谷歌上搜索后,我是不是能够找到的有关之间的差异的任何有用的信息KivyPY4A.搜索之间的差异KivySL4A是无果而终,太.

因此,对于KivyPY4A,
可有人解释,在宽松的条件:
-是它们之间有什么异同?
- 他们的优点和缺点是什么?
- 还有其他好的选择吗?

python android sl4a kivy

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

HTML中的<s>和<del>有什么区别,它们是否会影响网站排名?

<s>和之间有什么区别<del>?我在这里读到,<b>和之间存在语义差异<strong>,这是否适用于<s><del>?此外,搜索引擎如何解释这些语义差异(如果有的话)以及它们对排名有何影响?是否有其他标签会影响搜索排名?

html tags seo

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

ReactJS:如何访问子组件的引用?

我正在编写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)

coffeescript reactjs

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

为什么"导入"以这种方式实现?

>>> 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进行更改,则更改将在模块中保留,以便每次再次导入时,它都是修改后的版本.

真实的问题 …

python import module

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

为什么在此类型之前有加号?

我正在浏览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)

谢谢

ocaml types map

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

CtrlP:忽略git仓库中子目录中的文件

对于我的回购,假设它被称为 top

top\
  .gitignore
  foo\
  bar\
Run Code Online (Sandbox Code Playgroud)

我希望CtrlP列出文件

  1. foo\
  2. 顶部\中.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_moder让CtrlP .gitignore在顶级文件夹中受到尊重,但是top\Ctrl 下会列出所有内容.我只想要文件foo\.

谢谢.

git vim gitignore ctrlp

9
推荐指数
1
解决办法
1593
查看次数

在C++中没有实现,但仍然可以调用它

我有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)

主要功能运行平稳,没有任何警告或错误.这是为什么?如果头文件没有可以链接到的补充,那么如何编译呢?

c++

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

Linux有一个很好的"OCaml浏览器"工具吗?

我正在使用Emacs + Typerex进行OCaml编程.我之前在Windows中尝试过OcaIDE.它不如Typerex好,但确实有一个很好的功能:Ocaml Browser

Windows中的OcaIDE

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

谢谢

eclipse linux emacs ocaml typerex

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

标签 统计

ocaml ×2

python ×2

reactjs ×2

vim ×2

android ×1

c++ ×1

coffeescript ×1

ctrlp ×1

eclipse ×1

emacs ×1

git ×1

gitignore ×1

html ×1

import ×1

kivy ×1

linux ×1

map ×1

module ×1

seo ×1

sl4a ×1

tags ×1

typerex ×1

types ×1