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