1 回答
TA贡献1874条经验 获得超12个赞
当您将参数用大括号括起来时{division},例如,您正在传入一个对象。ie: { upper: "upper" }和{ lower: "lower" }
这被认为是在函数声明中创建对象的速记方法。
只需移除花括号,单个division参数就会按预期传递给每个按钮。
return(
<div>
{this.state.majorDivisions.map((division) => {
return <button onClick = {this.renderDivisionRequirements.bind(null, division)}>{division}</button>
})}
</div>)
此外,为了让事情更简洁,我建议您将其renderDivisionRequirements()转换为箭头函数,这样您就不必绑定this. 或者使用匿名函数在单击按钮时调用它。
renderDivisionRequirements = () => {
...renderDivisionRequirements logic
}
所以你的返回逻辑可以是
return(
<div>
{this.state.majorDivisions.map((division) => {
return <button onClick = {() => this.renderDivisionRequirements(division)}>{division}</button>
})}
</div>)
添加回答
举报