ぼかしの入力をクリアする方法があればいいのにと思います。
これは、入力にrefを渡すことができた場合、またはclearInputOnDeleteと同様の新しいpropを介して行うことができます。
私のユースケースにある理由は、固定された一連の提案を渡し、ユーザーが提案と一致しないものを入力すると、入力の焦点がぼけて、入力が有効であるように見えるためです。維持。 一致しないテキストエントリは保持されないことを明確にしたいと思います。
このコンポーネントの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)}
/>
)
}
}
完璧です、ありがとう!