2016-05-03 4 views
2

Draft.js Editorコンポーネントを使用しています。私はカスタムブロックレンダラーをblockRendererFn propで正しく指定しました。このコンポーネントは、Draft documentationにアドバイスされているように、draft-jsからEditorBlockをインポートしてレンダリングします。私がカスタムブロックレンダラに入る小道具では、ブロックが読み込み専用であるかどうかに関わらず、情報はありません。少なくともデフォルトではありません。私はblockProps経由でそれを得ることができましたが、私は何か不足していると感じています。同様に、EditorBlockを使用すると自然に動作するはずです。それは文脈か何かからreadOnly値を得ることができるように。readOnly propがtrueの場合、Draft.jsエディタでカスタムレンダリングブロックを読み込み専用にするにはどうすればよいですか?

EditorBlockを除いてブロックをレンダリングするのは、readOnlytrueの場合は私の責任ですか?そして、readOnlyの値をblockProps経由で私のカスタムブロックレンダラに伝えるのは私の責任ですか?

答えて

1

まあ、私はこれがたるみに答えてしまったが、私はここでそれを総括するつもりですので、チームをdraftjs:

全体のエディタで任意のonChangeコールバックを防ぐために、trueにreadOnlyを設定するのに十分でなければなりません。私の問題は、私がblockRendererFnから返されたカスタムブロックレンダラーでeditabletrueに設定したバグのようなものでした。これにより、readOnlyフラグがオーバーライドされ、カスタムブロックの変更が許可されました。アイザックはこれを潜在的に望ましくない行動と名づけました。

私の場合の解決策は、私のブロックがカスタムブロックレンダラで編集可能かどうかを指定することではありませんでした。そうすれば、readOnlyが適切に考慮され、何もする必要はありません。

関連する問題