2017-06-18 13 views
1

ドラフトエディタを使用しています。私はコンテンツをレンダリングすることができましたが、画像を表示できませんでした。ドラフトを使用しているときにイメージを表示するにはどうすればよいですか?今URLが唯一の代わりにimages.Theサーバーの表示され、次のように、データを送信ドラフトエディタの画像を表示

のIMG SRC = "のhttp:// IMAGE_URL" スタイル= "argin:30px自動;最大幅:350px;"

申し訳ありません申し訳ありませんが、私はimgタグhtmlを使用できませんでしたので、タグの構文は除外されています。デコレータの

function findImageEntities(contentBlock, callback, contentState) { 
    contentBlock.findEntityRanges(character => { 
    const entityKey = character.getEntity(); 
    return (
     entityKey !== null && 
     contentState.getEntity(entityKey).getType() === "IMAGE" 
    ); 
    }, callback); 
} 

const Image = props => { 
    const { height, src, width } = props.contentState 
    .getEntity(props.entityKey) 
    .getData(); 
    return <img src={src} height={height} width={width} />; 
}; 
class AdminEditor extends React.PureComponent { 
    constructor(props) { 
    super(props); 
    this.state = { 
     editorState: EditorState.createEmpty(), 
     editorContent: undefined, 
     contentState: "", 
     touched: false 
    }; 
    } 

    componentWillReceiveProps(nextProps) { 
    if (nextProps.htmlMarkup !== this.props.htmlMarkup) { 
     const content = nextProps.htmlMarkup; 
     const blocksFromHTML = convertFromHTML(content); 
     const plainState = ContentState.createFromBlockArray(
     blocksFromHTML.contentBlocks, 
     blocksFromHTML.entityMap 
    ); 
     this.setState(state => ({ 
     editorState: EditorState.createWithContent(plainState, decorator) 
     })); 
    } 
    } 

    onEditorStateChange = editorState => { 
    this.setState({ 
     editorState 
    }); 
    }; 

    onEditorChange = editorContent => { 
    this.setState({ 
     editorContent 
    }); 
    }; 

    handleChange = event => { 
    this.props.setEditorState(
     this.state.editorState.getCurrentContent().hasText() && this.state.touched 
    ); 
    }; 

    render() { 
    const { editorState } = this.state; 
    const { stateOfEditor } = this.props; 
    return (
     <div> 
     <Editor 
      tabIndex={0} 
      editorState={editorState} 
      initialContentState={this.props.htmlMarkup} 
      toolbarClassName="home-toolbar" 
      onEditorStateChange={this.onEditorStateChange} 
      toolbar={{ 
      history: { inDropdown: true }, 
      inline: { inDropdown: false }, 
      link: { showOpenOptionOnHover: true }, 
      image: { 
       uploadCallback: this.imageUploadCallBack, 
       defaultSize: { height: "auto", width: "50%" } 
      } 
      }} 
      onContentStateChange={this.onEditorChange} 
      onChange={this.handleChange} 
     /> 
     </div> 
    ); 
    } 
} 

export default AdminEditor; 

正確なコピーは、私は小道具onEditorStateChange = {this.onEditorStateChange}を見た私はコード

答えて

0

の行の数を減らすために貼り付けられていないfindImageEntitiesの上部にあります。私はdraft-jsではなくdraft-js-wysiwygを使用しているのか疑問です。 draft-js-wysiwygでは、ここにアクセスできます: https://github.com/jpuri/react-draft-wysiwyg/issues/589