![](/img/trans.png)
[英]ReactJs: How to handle empty array with map function inside render method
[英]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.