問題タブ [draftjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - DraftJS はフォーカス時にコンテンツの変更をトリガーしますか?
ページとsave
ボタンにエディターがあります。save
変更がある場合にのみボタンを表示したい(最後の保存以降)。したがって、保存するthis.setState({hasChanges: false})
と、onChange
関数で設定され、に設定さhasChanges
れtrue
ます。
そして、それはすべて正常に機能しています。問題は、エディターがonChange
フォーカスを取得したときにエディターがイベントを発生させることです (ただし、コンテンツはまだ変更されていません)。そして、それはドキュメントによると予想される動作です
コンポーネント内のイベント リスナーは、フォーカスの変更を監視し、期待どおりに onChange を介して伝播するため、状態と DOM は正しく同期されたままになります。
onChange
メソッド内でコンテンツが変更されたかどうか、または選択のみが変更されたかどうかを知る方法はありますか?
reactjs - 一度にプラグインを含む複数のdraftjsコンポーネント
Richbuttons プラグインでドラフト js を使用してきましたが、エディター コンポーネントが 1 つしかない場合はすべて正常に動作します。ただし、ページに複数のコンポーネントを追加しようとすると、リッチ ボタンは最後に追加されたエディターにのみ適用されます。
複数のプラグインの追加について読んだことがありますが、含まれている例では、コンポーネントをプラグインにインポートすることは考慮されていません。私がやろうとしていることは次のようなものです:
しかし、それをやろうとすると、コンパイルエラーが発生します
シングルページ アプリで 8 つ以上のエディターを同時に動作させることを計画しています。そのため、それぞれのエディター コンポーネントに接続される各エディターのリッチ ボタン プラグインを初期化し、同じボタン コンポーネントを再利用する方法はありますか? (つまり、ItalicButton、BoldButton) ?
正直なところ、この行の構文がよくわかりません。
そのため、そこで何が起こっているのかを理解するためのリソースをいただければ幸いです。
reactjs - Draft.js で 2 つの空行なしで画像 (アトミック) を適切に追加する方法
デフォルトでは、draft.js は 2 つの空行 (atimic の前に 1 行、atimic の後に 1 行) を持つ任意のアトミック タイプ ブロックを配置します。この動作は、draft.js でのアトミックな選択の欠如の結果であり、ここで説明されています。どうすればそれらの行を取り除くことができますか? Modifier に適切な関数が見つかりません。たぶん、誰かがこの問題を解決するための別の解決策を持っているかもしれません。
更新:私は私のために働くsolutionを見つけます:
reactjs - Draft.js: アトミックの前に新しいブロックを挿入する方法
ブロックの後に改行を追加したいと思います。私の現在の機能は次のとおりです。
新しいブロックがコンテンツの最後に挿入されますが、新しくブロックを作成をクリックするとこのエラーが発生します -
およびエラーが配置されているファイル
このエラーの原因と、挿入を適切に実行する方法を教えてください。
javascript - ドラフト JS は HTML から img を認識します
Facebookdraft-js
を使用して WYSIWYG を作成しています。ネイティブを使用して HTML を editorState に変換しようとしていますconvertFromHtml
。img
しかし、それはタグを認識していません。
これを行うと、イメージが完全に削除されます。何か案は?
draftjs - Draft.js: 既存のエンティティを新しいエンティティとして適用せずに変更できますか?
リンクの URL を編集できるようにする必要があるリッチ テキスト エディターに Draft.js を使用しようとしています。私が見たすべての例で、エンティティを選択範囲に適用できますが、エンティティは既に存在しています。その値を変更したいだけです。
再適用せずに URL を変更できない場合、現在適用されているのと同じ範囲にエンティティを再適用する良い方法はありますか?
どんな助けでも大歓迎です。
javascript - Draft.js エディターは、最初の単語の後に Android ブラウザーにフォーカスを失った
プロジェクトで使用Draft.js
していReact.js
ます。エディターはデスクトップ ブラウザー (Chrome、Firefox、IE、Edge...) では正常に動作しますが、Android デバイスでは問題が発生します。
エディターに最初の単語を入力してスペースバーを押した後 (ソフト キーボードで)、エディターはフォーカスを失い、エディターで入力を続けたい場合は、もう一度タッチする必要があります。
これは非常に悪いユーザー エクスペリエンスです。エディターのDraft.js
セットアップは、例のように特別なものではありません。
誰でも同じ問題があり、修正してください。
javascript - draft.js でキャレット位置 (行番号) を取得する
draft.jsでキャレットの位置を取得するにはどうすればよいですか? 選択状態からブロックを取得してからブロック配列を取得して、ブロック配列がどの位置にあるかを確認できると思いますが、これが信頼できる方法であるか、最善の方法であるかはわかりません。