Javascript 如何呈现html代码输入?

Javascript 如何呈现html代码输入?,javascript,html,reactjs,Javascript,Html,Reactjs,我正在创建一个Reactjs应用程序,在文本区域中获取输入。如果有任何html标记,我希望它呈现代码,并在另一个div块中显示文本,并在stackoverflow的文本编辑器(如或mkd)中以粗体或斜体显示文本。。 这是我的密码: class App extends React.Component{ constructor(props){ super(props); this.state={markdown:''};

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

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>
             )
      }
}
类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
this.state={markdown:''};
this.handleChange=this.handleChange.bind(this);
}
手变(活动){
this.setState({markdown:event.target.value});
}
render(){
返回(
{this.state.markdown}
)
}
}

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

您可以使用危险的html,如本技巧中所述:

类应用程序扩展React.Component{
建造师(道具){
超级(道具);
this.state={markdown:''};
this.handleChange=this.handleChange.bind(this);
}
手变(活动){
this.setState({markdown:event.target.value});
}
render(){
返回(
)
}
}

您可以使用危险的LysetinerHTML,如以下提示:

类应用程序扩展React.Component{
建造师(道具){
超级(道具);
this.state={markdown:''};
this.handleChange=this.handleChange.bind(this);
}
手变(活动){
this.setState({markdown:event.target.value});
}
render(){
返回(
)
}
}

此工具满足您的需要,可用于显示文本编辑器或从标记或html呈现文本


此工具可满足您的需要,它可用于显示文本编辑器或从标记或html呈现文本


仅在万不得已的情况下使用危险的HTML插入原始HTML

根据文件。当您使用它时,您放弃了React的DOM管理的好处


我会使用npm模块
html来做出反应

插入原始html,使用危险的html作为最后手段

根据文件。当您使用它时,您放弃了React的DOM管理的好处


我会使用npm模块
html来做出反应

您想呈现标记,还是呈现您在语法突出显示块中编写的代码?或者两者兼而有之,比如当您在文本区域中编写时,例如:``**我的代码是:*console.log('hello')``它将被呈现为一个粗体文本,带有突出显示的语法console.log,用于使用
标记的
包和
hilight.js
是否要呈现标记,或呈现语法突出显示块中编写的代码?或者两者兼而有之,比如当您在文本区域中编写时,例如:``**我的代码是:*console.log('hello')
``它将被呈现为一个粗体文本,语法突出显示console.log,用于
标记的
带有
hilight.js的包
在文本区域内添加我的文本在文本区域内添加我的文本
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>
             )
      }
}