如何将参数从语义 ui 反应传递给下拉组件?
How to pass params to Dropdown component from semantic ui react?
我在下面有反应 js 代码,我将语义 ui 反应 Dropdown
组件放在 map
中。 yoe
是状态数组,我放了 value={yoe[i]}
,但是我怎样才能将索引 i
传递给 onChange
道具?我尝试了以下方法,但方法 onAddYoe
似乎无法识别 i
。有人可以帮忙吗?谢谢!
{specialties &&
specialties.map((specialty, i) => {
return (
<div className="a-row" key={i}>
<div className="a-col-md-12">
<div className="a-text-box">
<label className="a-mb-5">
Years of experience in {specialty}
</label>
<br />
<Dropdown
placeholder="0-1 years"
fluid
selection
value={yoe[i]}
options={this.yoeList}
onChange={this.onAddYoe(i)}
/>
{errors.email ? (
<span className="error">Email Required</span>
) : null}
</div>
</div>
</div>
);
})}
我不知道你是如何定义你的 onAddYoe
但我怀疑它是这样的。
function onAddYoe(i) {
// do something based on i
}
然后你像这样在 onChange
上使用它,请注意 onChange
需要一个函数 但你在这里 实际上 return计算函数的结果。
<
onChange={this.onAddYoe(i)}
/>
您应该将函数更改为 return 如下函数:
function onAddYoe(i) {
return () => {
// do something based on i
}
}
// or a shorter version on a functional component
const onAddYoe = (i) => () => {
// do something based on i
}
我在下面有反应 js 代码,我将语义 ui 反应 Dropdown
组件放在 map
中。 yoe
是状态数组,我放了 value={yoe[i]}
,但是我怎样才能将索引 i
传递给 onChange
道具?我尝试了以下方法,但方法 onAddYoe
似乎无法识别 i
。有人可以帮忙吗?谢谢!
{specialties &&
specialties.map((specialty, i) => {
return (
<div className="a-row" key={i}>
<div className="a-col-md-12">
<div className="a-text-box">
<label className="a-mb-5">
Years of experience in {specialty}
</label>
<br />
<Dropdown
placeholder="0-1 years"
fluid
selection
value={yoe[i]}
options={this.yoeList}
onChange={this.onAddYoe(i)}
/>
{errors.email ? (
<span className="error">Email Required</span>
) : null}
</div>
</div>
</div>
);
})}
我不知道你是如何定义你的 onAddYoe
但我怀疑它是这样的。
function onAddYoe(i) {
// do something based on i
}
然后你像这样在 onChange
上使用它,请注意 onChange
需要一个函数 但你在这里 实际上 return计算函数的结果。
<
onChange={this.onAddYoe(i)}
/>
您应该将函数更改为 return 如下函数:
function onAddYoe(i) {
return () => {
// do something based on i
}
}
// or a shorter version on a functional component
const onAddYoe = (i) => () => {
// do something based on i
}