React.js onClick in递归函数

时间:2016-03-09 15:46:50

标签: javascript recursion reactjs

我通过递归在React.js中进行层次树视图。我从数据库中获取类别,并在一个结构中准备一个数组,每个数组元素都是一个对象,它有一个由他的孩子组成的数组:

React.js call recursive function in render

我已经能够生成视图,但现在我的问题是设置onClick = { 每个元素的属性。

由于某种原因,树的第一级元素与onClick函数配合良好,但从第二级开始,每当我点击任何元素时,绑定到点击的函数称为二,三,四times,取决于当前元素的树级别。

使用onClick的MY函数:

printTree: function(level){
        var self = this;
        var level_length = level.length;

        if(level_length >= 1){
            return(
                <ul>
                    {
                      level.map(function(category){
                        return (
                                <li key={category.fields.name} onClick={self.editCategory.bind(self,category)}><a>{category.fields.name}</a>
                                    { self.printTree(category.sons_array)} 
                                </li> 
                            )           


          })
                }
            </ul>
        )   
    }       
}

输入参数级别始终是一个数组..它由树的一个级别组成,这是一个将在此次迭代中处理的对象集合。

我认为我的问题是以递归方式传递函数 self 。在第一次调用该函数时,self指向实际的 this ,一切正常,但在递归中从第二级开始, self 将指向递归调用中的上一个函数,而不是 this ,但我不知道如何修复它。

0 个答案:

没有答案