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

如何获取React中CreatableSelect组件的目标值?

解决React Select CreatableSelect多选模式下的值获取问题

React Select的CreatableSelect不是原生表单控件,没法像普通input那样用event.target直接拿到多选模式下的数组值,得用受控组件的方式来维护选中值:

  • 用useState维护选中状态
    先在组件里引入useState,初始化一个状态变量存储选中的选项:

    import { useState } from 'react';
    import CreatableSelect from 'react-select/creatable';
    
    // 组件内部
    const [selectedProducts, setSelectedProducts] = useState([]);
    
  • 给CreatableSelect绑定状态和 onChange 事件
    把状态变量传给组件的value属性,再通过onChange事件更新状态:

    <CreatableSelect
        className={Astyle.selectInput}
        isClearable
        isMulti
        options={productsData}
        id="company_products"
        required
        value={selectedProducts}
        onChange={(newValue) => setSelectedProducts(newValue)}
    />
    
  • 提交表单时直接用状态变量
    表单提交时不用再通过event.target取值,直接用selectedProducts即可:

    const handleSubmit = (event) => {
        event.preventDefault();
        const data = {
            name: event.target.company_name.value,
            url: event.target.company_url.value,
            description: event.target.company_desc.value,
            tag: selectedProducts // 直接用状态里的数组值
        };
        // 这里处理表单提交逻辑,比如发送请求
    };
    

这样就能正确获取多选模式下的数组值,自定义创建的选项也会被包含在selectedProducts数组里。

内容的提问来源于stack exchange,提问作者Darrius Chen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:57:06