javascript - 如何呈现html代码输入?

标签 javascript html reactjs

我正在创建一个在文本区域获取输入的 Reactjs 应用程序。如果有任何 html 标记,我希望它呈现代码并在另一个 div block 中显示文本,并以粗体或斜体显示文本,就像在 stackoverflow 的文本编辑器中所做的那样 likemkd.. 这是我的代码:

class App extends React.Component{
      constructor(props){
              super(props);
              this.state={markdown:''};
              this.handleChange=this.handleChange.bind(this);
      }
      handleChange(event){
             this.setState({markdown:event.target.value});
      }
      render(){
             return(<div className="main">
                    <textarea onChange={this.handleChange} type="text"/>
                    <div className="textShow">{this.state.markdown}</div>
                    </div>
             )
      }
}

我应该对其进行哪些改进以呈现 html 标记并添加我提到的其他功能?

最佳答案

您可以像本技巧中那样使用 dangerouslySetInnerHTML:https://zhenyong.github.io/react/tips/dangerously-set-inner-html.html

class Application extends React.Component {
     constructor(props){
              super(props);
              this.state={markdown:''};
              this.handleChange=this.handleChange.bind(this);
      }
      handleChange(event){
             this.setState({markdown:event.target.value});
      }
      render(){
             return(<div className="main">
                    <textarea onChange={this.handleChange} type="text"/>
                     <div className="textShow" 
                       dangerouslySetInnerHTML={{__html: this.state.markdown}} />

                    </div>
             )
      }
}

关于javascript - 如何呈现html代码输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51497428/

相关文章:

javascript - 如何检查代理是否在 JavaScript 中工作

javascript - 如何动态选择动态添加的选择/选项标签的选项

javascript - 如何知道一个窗口是否可以用js关闭

javascript - 什么是 <%= ... %>

reactjs - 如何使用 React i18next 库格式化货币

javascript - AngularJS:如何在页面完全加载之前显示预加载或加载?

html - 等高列 bootstrap 3

html - nth-of-type 在列表中不起作用

javascript - 在 javascript 中循环数组 - 按顺序

javascript - tinymce 未捕获类型错误 : Theme is not a constructor(…)