如何将参数从语义 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
}