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

时间:2016-08-19 02:30:57

标签: javascript reactjs

以下是我的代码......

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

当我渲染我的组件时,&#39; this.state.showAllUser&#39;在此过滤器函数内部未定义。

如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

在函数中未正确定义。通过绑定它来修复它,使其具有正确的定义。

for index, row in df1.iterrows():
    curr_awards = row['AWARD'].split(" ")
    for award in curr_awards:
        new_line = row
        new_line['AWARD'] = award.strip()
        df2.loc[len(df2)] = new_line

答案 1 :(得分:2)

你也可以将'this'存储在另一个变量中:

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

这样'self.state.showAllUser'将具有您期望的值