draft.jsを使用しています。(draft.js)は、クラス名を使用してカスタムブロックスパンを作成することが可能です
エディタで選択したコンテンツの周りにカスタムクラス(コンテンツなど)を含むスパンを適用するカスタムブロックオプションを追加できます。
draft-jsカスタムブロックで可能ですか?
良い例がありますか? (グーグルでは何も見つかりませんでした)
draft.jsを使用しています。(draft.js)は、クラス名を使用してカスタムブロックスパンを作成することが可能です
エディタで選択したコンテンツの周りにカスタムクラス(コンテンツなど)を含むスパンを適用するカスタムブロックオプションを追加できます。
draft-jsカスタムブロックで可能ですか?
良い例がありますか? (グーグルでは何も見つかりませんでした)
カスタムクラスを使用して要素にテキストをラップすることなく実行できます。選択したテキストをメソッドRichUtils.toggleInlineStyle
でスタイルすることができます。詳細はhereと記載されています。 この実例を見てください - https://jsfiddle.net/x2gsp6ju/2/
customStyleMap
オブジェクトを定義してください。このオブジェクトのキーは、カスタムスタイルと値の固有の名前(適切なスタイルのオブジェクト)でなければなりません。
const customStyleMap = {
redBackground: {
backgroundColor: 'red'
},
underlined: {
textDecoration: 'underline',
fontSize: 26
},
};
峠Editor
部品のcustomStyleMap
プロパティにこのオブジェクト:この例では
<Editor
placeholder="Type away :)"
editorState={this.state.editorState}
onChange={this._handleChange}
customStyleMap={customStyleMap}
/>
は、私がthis.applyCustomSTyles
メソッドを呼び出し、などのスタイル名を渡し、適切なボタンをクリックした後、選択したテキストのスタイルを適用します最初の議論。この方法では、私はeditorState
RichUtils.toggleInlineStyles
で新しい生成:
applyCustomStyles = (nameOfCustomStyle) => {
this._handleChange(
RichUtils.toggleInlineStyle(
this.state.editorState,
nameOfCustomStyle
)
);
}
は、あなたがこのクラスにカスタムスタイルを適用するためのカスタムクラスで 'span'に選択したテキストをラップしたいですか? trueの場合、draft-jsカスタムブロックなしでそれを解決できます。 –
@MikhailShabrikovはい、これは私の目標です。それがカスタムブロックなしでできる場合は、ずっと良いです。 – Finglish
私のソリューションはあなたの問題に合っていますか? –