React-tags: مسح المدخلات على التمويه

تم إنشاؤها على ١٤ يناير ٢٠٢٠  ·  5تعليقات  ·  مصدر: i-like-robots/react-tags

سيكون من الجيد لو كانت هناك طريقة لتوضيح المدخلات على التعتيم.

يمكن القيام بذلك إذا تمكنا من تمرير مرجع إلى الإدخال ، أو عبر خاصية جديدة مشابهة لـ clearInputOnDelete.

السبب في حالة الاستخدام الخاصة بي هو أنه إذا قمت بتمرير مجموعة ثابتة من الاقتراحات ، وقام المستخدم بكتابة شيء لا يتطابق مع اقتراح ، ثم يقومون بإلغاء تركيز الإدخال ، ثم يبدو نوعًا ما أن مدخلاتهم كانت صحيحة وستكون كذلك أبقى. أريد أن أوضح أنه لن يتم الاحتفاظ بأي إدخال نص غير مطابق.

question

ال 5 كومينتر

هل نظرت في استخدام v6 من هذا المكون؟

https://github.com/i-like-robots/react-tags/tree/6.0

يحتوي هذا الإصدار على كلٍّ من طريقة رد الاتصال onBlur وطريقة .clearInput() 😄

لطيف - جيد! يحلها بالنسبة لي 🙂

@ i-like-robots آسف للتعليق مرة أخرى على هذا ، لكن ليس من الواضح بالنسبة لي كيفية الوصول إلى طريقة clearInput() نظرًا لعدم وجود مرجع معروض بواسطة الحزمة؟ عادةً ما أستخدم شيئًا مثل this.reactTagsRef.current.clearInput() للوصول إلى أسلوب فرعي من هذا القبيل.

أضف ref إلى مثيل المكون الخاص بك ، باستخدام المثال الموجود في هذا الريبو وقم بتوسيعه باستخدام رد اتصال onBlur :

class App extends React.Component {
  constructor (props) {
    super(props)

    this.state = {
      tags: [],
      suggestions: []
    }

+   this.reactTags = React.createRef()
  }

  onDelete (i) {
    const tags = this.state.tags.slice(0)
    tags.splice(i, 1)
    this.setState({ tags })
  }

  onAddition (tag) {
    const tags = [].concat(this.state.tags, tag)
    this.setState({ tags })
  }

+ onBlur () {
+   if (this.reactTags.current) {
+     this.reactTags.current.clearInput()
+   }
+ }

  render () {
    return (
        <ReactTags
+         ref={this.reactTags}
          tags={this.state.tags}
          suggestions={this.state.suggestions}
+         onBlur={this.onBlur.bind(this)}
          onDelete={this.onDelete.bind(this)}
          onAddition={this.onAddition.bind(this)}
        />
    )
  }
}

ممتاز شكرا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات