react, jsx:
componentDidMount () { this.initEditor() } initEditor = () => { this.editor = new Simditor({ textarea: this.textArea, markdown: true, toolbar: ['title', 'bold', 'italic', 'underline', 'code', 'blockquote', '|', 'ol', 'ul', '|', 'markdown'] }) this.editor.setValue(marked(this.props.content)) this.editor.on('valuechanged', (e, src) => { this.props.onTextChange(toMarkdown(this.editor.getValue())) }) }
Tag:
解决方法: 覆写源码的获取value, 包装标签方法(继续didMount下):
const editorNote = this simditorMarkdown.prototype._convert = function () { const text = this.textarea.val(); editorNote.props.onTextChange(text) const markdownText = marked(text); // textarea this.editor.textarea.val(markdownText); // tag this.editor.body.html(markdownText); // 包了层p this.editor.formatter.format(); return this.editor.formatter.decorate(); }; this.editor.setValue(marked(this.props.content))
另外分享下: 表单组件建议用onchange,今天有个上传组件手贱写成了onClick, 刚开始以为state没有改变的原因,后来注意到了.