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

React中使用Tagify为tagify__input添加自定义类名方法咨询

React中为Tagify的tagify__input添加自定义类名的方法

直接通过Tagify实例操作输入框元素

每个Tagify实例初始化完成后,可通过DOM.input属性获取对应的tagify__input span元素,直接为其添加自定义类名来区分不同实例的输入框。

代码示例

import Tagify from '@yaireo/tagify';
import { useRef, useEffect } from 'react';

function TagifyComponent() {
  // 保存两个Tagify实例的引用
  const tagifyInstance1 = useRef(null);
  const tagifyInstance2 = useRef(null);

  useEffect(() => {
    // 初始化第一个实例
    const inputEl1 = document.getElementById('tag-input-1');
    tagifyInstance1.current = new Tagify(inputEl1, {
      maxTags: 5
    });
    // 给第一个实例的输入框添加自定义类
    tagifyInstance1.current.DOM.input.classList.add('tag-input-custom-1');

    // 初始化第二个实例
    const inputEl2 = document.getElementById('tag-input-2');
    tagifyInstance2.current = new Tagify(inputEl2, {
      maxTags: 3
    });
    // 给第二个实例的输入框添加自定义类
    tagifyInstance2.current.DOM.input.classList.add('tag-input-custom-2');

    // 组件卸载时销毁实例
    return () => {
      tagifyInstance1.current?.destroy();
      tagifyInstance2.current?.destroy();
    };
  }, []);

  return (
    <div className="tagify-container">
      <input id="tag-input-1" placeholder="请输入标签1" />
      <input id="tag-input-2" placeholder="请输入标签2" />
    </div>
  );
}

export default TagifyComponent;

对应样式

/* 第一个Tagify输入框的样式 */
.tag-input-custom-1 {
  border-color: #2563eb;
  padding: 6px 10px;
  font-size: 14px;
}

/* 第二个Tagify输入框的样式 */
.tag-input-custom-2 {
  border-color: #dc2626;
  padding: 8px 12px;
  font-size: 16px;
}

备选方案:通过根容器类名间接定位

若不想直接操作输入框元素,也可以给每个Tagify实例的根容器(DOM.wrapper)添加自定义类,再通过后代选择器定位tagify__input:

// 初始化时给根容器加类
tagifyInstance1.current.DOM.wrapper.classList.add('tagify-wrapper-1');
.tagify-wrapper-1 .tagify__input {
  border-color: #2563eb;
  padding: 6px 10px;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:22:34