react render里的变量,在事件中获取不到?

var ProductionStyleBox=React.createClass({
        handClick: function(){
            console.log(arr)
        },
        render : function(){
            var arr=[];
            return (
                <li onClick={this.handClick}>
                    <ProductionStyle1 />
                </li>
            )
        }
    })
阅读 5.9k
4 个回答

handClick()与render()本身是两个独立的函数,作用域也是独立的.所以访问不到是正常的

arr的作用域在render中,要在另外一个函数中使用的话,就要传参数过去。做如下修改:

onClick ={this.handleClick(arr)}

handleClick(arr) {
  console.log(arr);
}
新手上路,请多包涵

你可以把render和handClick看作两个独立的函数,那么这两个独立的函数的作用域自然是不同的。
arr是定义在render中的局部变量,所以你在外部的函数中是获取不到的。

render 和 handClick两个是相互独立的函数,你要handClick能获取到render里面的函数,可以onClick的时候传递过去,详细见下面:

var ProductionStyleBox=React.createClass({
        handClick: function(arr){
            console.log(arr)
        },
        render : function(){
            var arr=[];
            return (
                <li onClick={() => this.handClick(arr)}>
                    <ProductionStyle1 />
                </li>
            )
        }
    })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题