小编Jef*_*oom的帖子

React.js如何将回调传递给子组件?

我想将一个回调传递给一个双重嵌套的组件,虽然我能够有效地传递属性,但我无法弄清楚如何将回调绑定到正确的组件以便它被触发.我的结构看起来像这样:

-OutermostComponent
    -FirstNestedComponent
        -SecondNestedComponent
            -DynamicallyGeneratedListItems
Run Code Online (Sandbox Code Playgroud)

单击列表项时应触发回调,即OutermostComponents方法"onUserInput",但我得到"未捕获错误:未定义不是函数".我怀疑问题在于我如何在第一个内部渲染SecondNestedComponent,并将其传递回调.代码看起来像这样:

var OutermostComponent = React.createClass({
    onUserInput: //my function,
    render: function() {
        return (
            <div>
            //other components 
                <FirstNestedComponent
                    onUserInput={this.onUserInput}
                />
            </div>
        );
    }
});

var FirstNestedComponent = React.createClass({
    render: function() {
        return (
            <div>
            //other components 
                <SecondNestedComponent
                    onUserInput={this.onUserInput}
                />
            </div>
        );
    }
});
var SecondNestedComponent = React.createClass({
    render: function() {
        var items = [];
        this.props.someprop.forEach(function(myprop) {
            items.push(<DynamicallyGeneratedListItems myprop={myprop} onUserInput={this.props.onUserInput}/>);}, this);
        return (
            <ul>
                {items}
            </ul>
        );
    }
});
Run Code Online (Sandbox Code Playgroud)

如何正确地将回调绑定到适当的嵌套组件?

javascript callback reactjs react-jsx

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

CakePHP中的单元测试?

我想知道,你们怎么在CakePHP进行单元测试?你如何在项目中加入测试?你测试的项目的哪些部分?您如何确定哪些部件可以进行单元测试?你们还能在截止日期前完成工作吗?

php unit-testing cakephp

27
推荐指数
1
解决办法
7517
查看次数

什么可以用于PHP 5.2的DateTime :: diff()?

在PHP 5.2中是否有与DateTime :: diff()等效的函数?

我的本地服务器是PHP 5.3并使用DateTime :: diff().然后我发现我的实时网站使用PHP 5.2并给出错误.

Fatal error: Call to undefined method DateTime::diff() in /var/www/some/other/dir/web/daikon/modules/projects/views/admin/log/admin_log_list.php on line 40
Run Code Online (Sandbox Code Playgroud)

PHP代码:

 foreach ($logs as $key => $list){
 ...
 // show date in European way dd-mm-yyyy not in MySQL way yyyy-mm-dd
    $newdate =new DateTime($list['date']) ;
    echo "<td class=\"left\" width=\"8%\">".$newdate->format('d-m-Y')."</td>\n";
    $starttime = new DateTime($list['start_time']);
    echo "<td width=\"7%\">".date_format($starttime, 'H:i')."</td>\n";
    $finishtime = new DateTime($list['finish_time']);
    echo "<td width=\"8%\">".date_format($finishtime, 'H:i')."</td>\n";
    $timediff = 0;
    $interval = $starttime->diff($finishtime);
    $hours   = $interval->format('%h');
    $minutes = $interval->format('%i');
    $timediff = $hours …
Run Code Online (Sandbox Code Playgroud)

php php-5.2

26
推荐指数
3
解决办法
4万
查看次数

我们何时需要默认构造函数?

我的问题很简单.我们何时需要默认构造函数?请参考以下代码:

class Shape
{
    int k;

public:
    Shape(int n) : k(n) {}
    ~Shape() {}
};

class Rect : public Shape
{
    int l;

public:
    Rect(int n): l(n)
    {}      //error C2512: 'Shape' : no appropriate default constructor available

    ~Rect() {}
};
Run Code Online (Sandbox Code Playgroud)
  1. 为什么编译器不会在类Rect中隐式生成零参数默认构造函数?

  2. 据我所知,如果一个类(Rect)派生自另一个具有默认构造函数(隐式生成或显式提供)的类(Shape),则默认构造函数应由编译器生成.

c++ language-lawyer

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

去内存消费管理

我是Go的新手,试图找出它如何管理内存消耗.

我的一个测试项目中的内存有问题.我不明白为什么当我的程序运行很长时间时,Go会使用越来越多的内存(从不释放它).

我正在运行下面提供的测试用例.在第一次分配后,程序使用近350 MB的内存(根据ActivityMonitor).然后我尝试释放它,ActivityMonitor显示内存消耗增加一倍.为什么?

我使用Go 1.0.3在OS X上运行此代码.

这段代码有什么问题?在Go程序中管理大变量的正确方法是什么?

在实现使用大量时间和内存的算法时,我遇到了另一个与内存管理相关的问题; 运行一段时间后,它会抛出"内存不足"异常.

package main

import ("fmt" 
"time"
)

func main() {
  fmt.Println("getting memory")
  tmp := make([]uint32, 100000000)
  for kk, _ := range tmp {
    tmp[kk] = 0
  }
  time.Sleep(5 * time.Second)
  fmt.Println("returning memory")
  tmp = make([]uint32, 1)
  tmp = nil
  time.Sleep(5 * time.Second)
  fmt.Println("getting memory")
  tmp = make([]uint32, 100000000)
  for kk, _ := range tmp {
    tmp[kk] = 0
  }
  time.Sleep(5 * time.Second)
  fmt.Println("returning memory")
  tmp = make([]uint32, 1)
  tmp = nil …
Run Code Online (Sandbox Code Playgroud)

memory-management go memory-consumption

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

如何创建正则表达式匹配流?

我试图解析标准输入并提取与特定模式匹配的每个字符串,计算每个匹配的出现次数,并按字母顺序打印结果.这个问题似乎与Streams API很匹配,但是我找不到从Matcher创建匹配流的简洁方法.

我通过在匹配项上实现迭代器并将其包装到Stream中解决了这个问题,但结果不是很易读.如何在不引入其他类的情况下创建正则表达式匹配流?

public class PatternCounter
{
    static private class MatcherIterator implements Iterator<String> {
        private final Matcher matcher;
        public MatcherIterator(Matcher matcher) {
            this.matcher = matcher;
        }
        public boolean hasNext() {
            return matcher.find();
        }
        public String next() {
            return matcher.group(0);
        }
    }

    static public void main(String[] args) throws Throwable {
        Pattern pattern = Pattern.compile("[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)");

        new TreeMap<String, Long>(new BufferedReader(new InputStreamReader(System.in))
            .lines().map(line -> {
                Matcher matcher = pattern.matcher(line);
                return StreamSupport.stream(
                        Spliterators.spliteratorUnknownSize(new MatcherIterator(matcher), Spliterator.ORDERED), false);
            }).reduce(Stream.empty(), Stream::concat).collect(groupingBy(o -> o, counting()))
        ).forEach((k, v) -> { …
Run Code Online (Sandbox Code Playgroud)

java regex java-8 java-stream

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

当许多密钥具有相同的哈希码时,Java 8的HashMap如何退化为平衡树?

当许多密钥具有相同的哈希码时,Java 8的HashMap如何退化为平衡树?我读到了键应该实现Comparable来定义一个顺序.HashMap如何结合散列和自然排序来实现树?那些没有实现的类Comparable,或者当多个不可相互比较的Comparable实现是同一个映射中的键时呢?

java hashmap java-8

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

Stream.forEach是否遵循顺序流的遭遇顺序?

Javadoc Stream.forEach表示(强调我的):

此操作的行为明确是不确定的.对于并行流管道,此操作不保证遵守流的遭遇顺序,因为这样做会牺牲并行性的好处.对于任何给定元素,可以在任何时间以及库选择的任何线程中执行该动作.如果操作访问共享状态,则它负责提供所需的同步.

Java 9 Early Access Javadoc中提供了相同的文本.

第一句("明确不确定")表明(但没有明确说明)此方法不会保留遭遇顺序.但是明确说明顺序没有保留的下一个句子是以"For parallel stream pipeline"为条件的,如果不管并行性如何应用该句子,那么这个条件就没有了.这让我不确定forEach是否会保留顺序流的顺序.

这个答案指出了流库实现调用的位置.sequential().forEach(downstream).这表明forEach旨在保留顺序流的顺序,但也可能只是库中的错误.

我通过使用forEachOrdered安全的方式回避了我自己的代码中的这种模糊性,但今天我发现NetBeans IDE的"使用功能操作"编辑器提示将转换

for (Foo foo : collection)
    foo.bar();
Run Code Online (Sandbox Code Playgroud)

collection.stream().forEach((foo) -> {
    foo.bar();
});
Run Code Online (Sandbox Code Playgroud)

如果forEach不保留遭遇顺序,则会引入错误.在我报告针对NetBeans的错误之前,我想知道库实际上保证了什么,并由源备份.

我正在寻找权威人士答案.这可能是图书馆实施中的一个明确的评论,关于Java开发邮件列表的讨论(谷歌没有找到任何东西,但我可能不知道这些神奇的词汇),或者是图书馆设计师的声明(其中我知道两个,Brian GoetzStuart Marks,积极参与Stack Overflow).(请不要回答"只是使用forEachOrdered" - 我已经这样做了,但我想知道代码是否错误.)

java java-8 java-stream

23
推荐指数
1
解决办法
1300
查看次数

为什么Java enum不能是最终的?

public interface Proposal  {  
    public static final enum STATUS { 
        NEW ,
        START ,
        CONTINUE ,
        SENTTOCLIENT
    }; 
}
Run Code Online (Sandbox Code Playgroud)

Java不允许枚举final在接口内部,但默认情况下,接口内的每个数据成员都是public static final.任何人都可以澄清一下吗?

java enums final

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

CMake Custom Command复制多个文件

我试图使用该${CMAKE_COMMAND} -E copy <from> <to>格式复制多个文件,但我想知道是否有办法提供一些文件复制到特定目录.似乎cmake副本只允许一次复制一个文件.当我宁愿提供要复制的文件列表作为第一个参数时,我真的不想重复使用复制命令.

我认为最简单的解决方案是使用平台相关的"cp"命令.虽然这对于便携性肯定不好,但我们的系统保证在Linux上构建.一个简单的,独立于平台的解决方案会更好.

cmake

20
推荐指数
3
解决办法
2万
查看次数