我正在尝试将option.title
作为参数传递给相应生成的onChange
表单组件的RadioGroup
函数。
onChange
收到正确的事件,但option.title
值只是最后一个呈现的值。如何将option.title
绑定到它的onChange
组件?目前,当触发事件时,option.title
已获取最后生成的元素的值 - 无论触发onChange
的元素是什么,都会显示此信息。
generateList(){
var list = []
for (var i in configs){
var option = configs[i]
list.push(
<div>
<div className="optionTitle">{option.title}</div>
<RadioGroup onChange={(e) => this.handleRadioChange(option.title, e)} className="configContainer" horizontal>
{this.generateRadio(option.options, option.title)}
</RadioGroup>
</div>
)
}
return list
}
答案 0 :(得分:0)
试试这个
generateList(){
return configs.map((option) =>
(<div>
<div className="optionTitle">{option.title}</div>
<RadioGroup onChange={(e) => this.handleRadioChange(option.title, e)} className="configContainer" horizontal>
{this.generateRadio(option.options, option.title)}
</RadioGroup>
</div>
) )
}
答案 1 :(得分:0)
您可以使用function currying访问这两个参数:
handleRadioChange(title){
return function(e){
// both the event and the title are accessible here
}
}
generateList(){
return configs.map((option) =>
(<div>
<div className="optionTitle">{option.title}</div>
<RadioGroup onChange={this.handleRadioChange(option.title)} className="configContainer" horizontal>
{this.generateRadio(option.options, option.title)}
</RadioGroup>
</div>
) )
}
请记住,在render中调用函数会在每个渲染上创建一个实例 请阅读this了解详情。