You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js中NextUI Select组件获取选中值返回索引的问题求助

解决NextUI Select组件无法获取选中字符串值的问题

你的代码核心问题是误解了NextUI Select组件onChange回调的参数类型:它不返回DOM事件对象,而是直接返回选中的选项值。你当前用e.target.value的写法,实际上是在尝试访问一个字符串的target属性(这会返回undefined),组件因此 fallback 返回了选项的索引值。

修正方案

直接将handleChange的参数改为接收选中值,而非事件对象:

"use client";
import React, { useState } from "react";
import { Select, SelectItem } from "@nextui-org/select";

const ServiceInfoContainer = () => {
  const [service, setService] = useState("");

  const categories = ["Beginner (0-1 year)", "Intermediate (2-3 years)", "Experienced (4-5 years)", "Expert (6+ years)"];

  // 直接接收选中的value值
  const handleChange = (selectedValue) => setService(selectedValue);

  return (
    <Select onChange={handleChange} label="Select years of experience">
      {categories.map((categ, index) => (
        <SelectItem key={index} value={categ}>
          {categ}
        </SelectItem>
      ))}
    </Select>
  );
};

export default ServiceInfoContainer;

说明

NextUI的Select组件onChange回调的设计逻辑是:直接返回你给SelectItem设置的value属性值。修改后,service状态会正确存储选中的字符串选项,而非索引。

内容的提问来源于stack exchange,提问作者Muhammed Sainal K.K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:18:17