DraftJS API を使用して次のシナリオを実装するのに問題があります。
シナリオは次のとおりです。これで提供されているリンクの例に従ってください
ユーザーがハイパーリンク URL を確認した後、次のコードを使用して、選択したテキストをハイパーリンクに変換しています。
_confirmLink(urlValue) {
const {editorState} = this.state;
const entityKey = Entity.create('LINK', 'MUTABLE', {url: urlValue});
this.setState({
showURLInput: false,
editorState: RichUtils.toggleLink(
editorState,
editorState.getSelection(),
entityKey
)
}, () =>
setTimeout(() => this.refs.editor.focus(), 100);
});
}
ここで、ユーザーがテキストabc
を入力し、プロンプトでその URL を指定したとします。たとえば、http://yahoo.com
テキストabc
はハイパーリンクに変換されます。
しかし、その後、テキスト エディタのカーソルがすぐに行頭に移動します。ユーザーが手動でそのカーソルを行末に移動して何かを再度入力しようとすると、テキスト エディターは入力したテキストを行頭に表示しますが、これは非常に奇妙です。
私の意見では、ユーザーがその後に何かを入力できるように、生成されたハイパーリンクの後にスペース文字を挿入する必要があります。また、カーソルは行頭ではなく、ハイパーリンクの最後にとどまる必要があります。
どうすればそれを達成できますか?