繁体   English   中英

reactjs如何调用map函数内的方法

[英]reactjs how to call method inside map function

我不能像工作一样简单。 似乎解析器作为一项努力工作来理解里面的内容

 {[1, 2, 3].map((file, idx) =>
                  this.r_test()
              )}

其中r_test的定义如下:

  r_test = (idx) => {
    <div className="input-field">
      <label className="active">Titre</label>
    </div>
  }

如果我写multiligne函数,我需要在里面使用括号。 我知道地图是异步的,这不是我预期的“这个”。 但是如何处理并简单地编写指令(循环+方法调用),而不会出现解析器问题或作用域问题? 对我来说很难的是js不会抛出错误,而只是将其作为一个无操作。

 {[1, 2, 3].map((file, idx) =>
                          {this.r_test()
                          this.r_test()
                          this.r_test()
}
                      )}

编辑

人们建议我做的不行。 在地图调用中调用它并不适合我。 返回丢失是一个错字,但仍然没有调用该方法。 最糟糕的是,解析器是一个让你在一个方法+异步映射+其他方法中编写你的回调的噩梦。 我最终完成的是一个SYNCHRONE循环,在入口处有一个数组,最后我返回包含所有XML数据的数组。

对于像我这样挣扎的人来说,这就是我所做的:

  r_aggregate = (qty) => {
    let elmt = []

    for (let i = 0; i < qty; i++) {
      elmt.push(this.r_title())
    }
   return elmt
  }

r_title juste返回一些随机XML。 不要看实现的细节。

 r_title = () => {
    return(
      <div className="input-field">
        <input spellCheck="false" value={this.state.title} onChange={(e) => this.setState({ title: e.target.value }) } id="input_000" type="text" className="validate"></input>
        <label className="active">Titre</label>
      </div>
    )
  }

现在我可以使用嵌套函数调用来调用我的调用。 什么地图无法做到。 解析器至少理解我写的内容:

 render() { 
...              
 {this.r_aggregate(3)}
}

你需要从你的r_test返回,现在你隐式返回undefined 尝试这个:

r_test = (idx) => (
  <div className="input-field">
    <label className="active">Titre</label>
  </div>
)

注意,我替换了{ with (

在map函数中,您将隐式返回

 {[1, 2, 3].map((file, idx) =>    // implicit return since no `{}`
              this.r_test()
          )}

但是你没有从r_test返回任何东西

r_test = (idx) => {
    <div className="input-field">
      <label className="active">Titre</label>
    </div>
  }

你能做的是

r_test = (idx) => {
   return  <div className="input-field">   // return explicitly
      <label className="active">Titre</label>
    </div>
  }

要么

r_test = (idx) => (      //implicit return
    <div className="input-field">
      <label className="active">Titre</label>
    </div>
  )

当你没有从r_test返回任何东西时,你实际上是从map中返回undefined

暂无
暂无

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

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