[英]How can I get the value from a component to another?
import React, { Component } from "react";
import { Editor } from "react-draft-wysiwyg";
import { EditorState, convertToRaw } from "draft-js";
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import draftToHtml from "draftjs-to-html";
export default class TextEditor extends Component {
state = {
editorState: EditorState.createEmpty(),
};
onEditorStateChange = (editorState) => {
this.setState({
editorState,
});
};
render() {
const { editorState } = this.state;
console.log(draftToHtml(convertToRaw(editorState.getCurrentContent())));
//I want to get draftToHtml(convertToRaw(editorState.getCurrentContent())) whenever I call this component
return (
<div>
<Editor
editorState={editorState}
toolbarClassName="toolbarClassName"
wrapperClassName="wrapperClassName"
editorClassName="editorClassName"
onEditorStateChange={this.onEditorStateChange}
/>
</div>
);
}
}
import React, {useState} from 'react';
import axios from "axios"
import ReactDOM from 'react-dom';
import {Editor, EditorState,RichUtils} from 'draft-js';
import 'draft-js/dist/Draft.css';
import TextEditor from '../TextEditor';
function AddBlog() {
return <div>
<h3 className='text-center my-3'>
Add blog
</h3><hr/>
<div className='col-lg-6 mx-auto'>
<form>
<div class="mb-3 border p-2 rounded-3">
<label for="exampleInputPas1" class="form-label">Description</label>
<input type="text" hidden value={desc} onChange={(e)=>setDesc(e.target.value)} class="form-control" id="exampleInputrd1" />
<div className="editor">
<TextEditor />
//I want the value from TextEditor so that I can save it.
</div>
</div>
<div className='d-flex justify-content-end'>
<button type="submit" onClick={submitForm} class="btn btn-danger btn-sm">Add</button>
</div>
</form>
</div>
</div>;
}
export default AddBlog;
There are two solutions有两种解决方案
editorState
state up to the AddBlog
component.editorState
state 提升到AddBlog
组件。onEditorStateChange
callback from AddBlog
to TextEditor
and it will set the editor state in AddBlog
on edit.AddBlog
的onEditorStateChange
回调传递给TextEditor
,它将在编辑时在AddBlog
中设置编辑器 state。 TextEditor文本编辑器
export default class TextEditor extends Component {
render() {
console.log(draftToHtml(convertToRaw(this.props.editorState.getCurrentContent())));
return (
<div>
<Editor
editorState={this.props.editorState}
onEditorStateChange={this.props.onEditorStateChange}
/>
</div>
);
}
}
AddBlog添加博客
import {useState} from 'react'
import { EditorState } from "draft-js";
function AddBlog() {
const [editorState,setEditorState] = useState(EditorState.createEmpty())
const onEditorStateChange = (editorState) => {
setEditorState(editorState)
}
return (
<div>
<TextEditor onEditorStateChange={onEditorStateChange} editorState={editorState}/>
</div>
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.