我想在 Select onChange时获得选项的值和键.

我知道我可以得到onChangeOption函数中使用event.target.value的选项value的简单性,但我怎么能得到key呢?

<select onChange={this.onChangeOption} value={country}>
    {countryOptions.map((item, key) =>
        <option key={key} value={item.value}>
            {item.name}
        </option>
    )}
</select>

推荐答案

将密钥作为props 传递显然有效,但更快的方法可能是将密钥作为自定义属性包含在html中.

class App extends React.Component {
  constructor(props) {
    super(props);
    this.onSelect = this.onSelect.bind(this);
  }
  onSelect(event) {
    const selectedIndex = event.target.options.selectedIndex;
        console.log(event.target.options[selectedIndex].getAttribute('data-key'));
  }

  render() {
    return ( 
      <div>
      <select onChange = {this.onSelect}>
       <option key="1" data-key="1">One</option> 
       <option key="2" data-key="2">Two</option>             </select> 
     </div>
    );
  }
}

ReactDOM.render( < App / > , document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>

Reactjs相关问答推荐

重新加载页面时始终出现汉堡菜单

构建next.js项目时状态不变,但在dev服务器中

在数组对象内的数组上进行映射

更改滑块标记的文本 colored颜色 ./Reaction/MUI 5

Reaction路由DOM v6不包含上下文(Supabase)

获取类别和页面的参数

状态改变不会触发重新渲染

使用获取的数据更新状态,但在try console.log 时它给出未定义

如何使用服务器中的数据自动填充表单字段?

在 React 中将 MUI 样式外包到单独的文件中?

获取更多数据后更新 DOM,而不刷新 React.js 中的页面

在按钮单击中将动态参数传递给 React Query

React - 拖放 UML

使用dayjs时如何在输入类型日期时间本地字段中设置默认值?

如何在 JSX 中使用 -webkit- 前缀?

加密 Django Rest Framework API 响应 + 解密响应应用程序中的响应

如何在 v6.4 中将 Auth0 提供程序与新的 createBrowsereRouter 一起使用?

哪个 PrivateRouter 实现更好:高阶组件还是替换?

如何将本地视频文件上传到 Google Cloud

服务器端分页未按预期工作