React-tags: ぼかし時に入力をクリアする

作成日 2020年01月14日  ·  5コメント  ·  ソース: i-like-robots/react-tags

ぼかしの入力をクリアする方法があればいいのにと思います。

これは、入力にrefを渡すことができた場合、またはclearInputOnDeleteと同様の新しいpropを介して行うことができます。

私のユースケースにある理由は、固定された一連の提案を渡し、ユーザーが提案と一致しないものを入力すると、入力の焦点がぼけて、入力が有効であるように見えるためです。維持。 一致しないテキストエントリは保持されないことを明確にしたいと思います。

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 評価

関連する問題

yrik picture yrik  ·  4コメント

thienanle picture thienanle  ·  9コメント

filippofilip95 picture filippofilip95  ·  4コメント

ekinalcar picture ekinalcar  ·  10コメント

V6
i-like-robots picture i-like-robots  ·  11コメント