繁体   English   中英

渲染组件时如何在我的过滤器函数中使用this.state?

[英]How to use this.state in my filter function when render component?

下面是我的代码...

   somarray.user.filter(function(ele, index) {
       if(this.state.showAllUser == false) {
        return (index < 3)
       }
       else {
        return true
       }
  })

渲染组件时,此过滤器函数内的“ this.state.showAllUser”未定义。

如何解决这个问题?

在函数中未正确定义。 通过绑定对其进行修复,以使其具有正确的定义。

 somarray.user.filter(function(ele, index) {
       if(this.state.showAllUser == false) {
        return (index < 3)
       }
       else {
        return true
       }
  }.bind(this))

您也可以将“ this”存储在另一个变量中,如下所示:

var self = this
somarray.user.filter(function(ele, index) {
   if(self.state.showAllUser == false) {
    return (index < 3)
   }
   else {
    return true
   }
})

这样,“ self.state.showAllUser”将具有您期望的值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM