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

时间:2018-02-27 10:16:54

标签: reactjs

我不能像工作一样简单。 似乎解析器是一项难以理解的内容

err

其中r_test的定义如下:

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

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

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

修改

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

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

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

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

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

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

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

 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>
    )
  }

2 个答案:

答案 0 :(得分:1)

您需要从r_test返回,现在您隐式返回undefined。试试这个:

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

注意,我将{替换为(

答案 1 :(得分:1)

在地图功能中,您将隐式返回

 {[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返回任何内容,则实际上是从地图返回undefined