Javascript 如何将字符串转换为HTML?
所以我遇到了一个问题,我的代码被转换成字符串,而不是我试图实现的html。我的问题是如何在转换之前将其转换成innerHTML?如果我把它推到阵列上,是否可以这样做?我的目标是使它类似于“待办事项列表应用程序”,它有多个输入,将每个值吐到每一行Javascript 如何将字符串转换为HTML?,javascript,reactjs,innerhtml,Javascript,Reactjs,Innerhtml,所以我遇到了一个问题,我的代码被转换成字符串,而不是我试图实现的html。我的问题是如何在转换之前将其转换成innerHTML?如果我把它推到阵列上,是否可以这样做?我的目标是使它类似于“待办事项列表应用程序”,它有多个输入,将每个值吐到每一行 class Forma extends React.Component { constructor(){ super() this.state ={ name: '', birth: '', age: '', i
class Forma extends React.Component {
constructor(){
super()
this.state ={
name: '',
birth: '',
age: '',
items: []
}
this.handleInputChange = this.handleInputChange.bind(this)
this.submitItem = this.submitItem.bind(this)
}
handleInputChange(event){
let name = event.target.name
let birth = event.target.birth
let age = event.target.age
let value = event.target.value
this.setState({ [name] : value, [birth] : value, [age] : value})
}
submitItem (){
let items = this.state.items
let item = this.state.name
let birth =this.state.birth
let age = this.state.age
let i = "<th>"
let z = "</th>"
let all =i + item + z + i + birth + z + i + age +z
items.push(all)
this.setState({ items: items})
}
render(){
return (
<div className="App">
<h1>To do List</h1>
<input type="text" name="name" onChange={this.handleInputChange}></input>
<input type="text" name="birth" onChange={this.handleInputChange}></input>
<input type="text" name="age" onChange={this.handleInputChange}></input>
<button onClick={this.submitItem}>Submit</button>
{this.state.items.map((all) => {
return(
<tr>{all}<button type="submit" className="delete">Delete</button></tr>
);
})}
</div>
);
}
}
class Forma.Component{
构造函数(){
超级()
这个州={
名称:“”,
出生:'',
年龄:'',
项目:[]
}
this.handleInputChange=this.handleInputChange.bind(this)
this.submitItem=this.submitItem.bind(this)
}
handleInputChange(事件){
让name=event.target.name
让出生=event.target.birth
让年龄=event.target.age
让值=event.target.value
this.setState({[name]:value,[birth]:value,[age]:value})
}
次滴度(){
让items=this.state.items
让item=this.state.name
让出生=this.state.birth
让age=this.state.age
让我“”“
让z=“”
设全部=i+项目+z+i+出生+z+i+年龄+z
项目。推送(全部)
this.setState({items:items})
}
render(){
返回(
待办事项清单
提交
{this.state.items.map((全部)=>{
返回(
{all}删除
);
})}
);
}
}
来自文档:可用于从字符串呈现html
危险的是,React取代了在浏览器DOM中使用innerHTML。一般来说,从代码中设置HTML是有风险的,因为很容易在不经意间让用户遭受跨站点脚本(XSS)攻击。因此,您可以直接从React设置HTML,但您必须键入危险的LysetinerHTML并传递带有_HTML键的对象,以提醒自己这是危险的
删除
来自文档:可用于从字符串呈现html
危险的是,React取代了在浏览器DOM中使用innerHTML。一般来说,从代码中设置HTML是有风险的,因为很容易在不经意间让用户遭受跨站点脚本(XSS)攻击。因此,您可以直接从React设置HTML,但您必须键入危险的LysetinerHTML并传递带有_HTML键的对象,以提醒自己这是危险的
删除
作为建议,您应该始终编写实际的变量名。这些小小的一个字母的变量使得任何人都很难处理正在发生的事情,如果你让它们表现出来,它可以帮助你更快地识别错误。作为一个建议,你应该总是写下实际的变量名。这些小小的一个字母的变量使得任何人都很难处理正在发生的事情,如果你让它们表现出来,它可以帮助你更快地识别错误。你需要启用JavaScript来运行这个应用程序。这就是我执行此操作时遇到的错误。是否禁用了javascript?您使用的是什么浏览器,以及刚刚测试过的版本,它的启用。尝试将Delete
移动到all
变量,因为您不能有多个危险的HTML
,非常感谢您,伙计,您引导我走上了正确的道路,我在您的帮助下解决了这个问题!!我在地图上添加了这一行:(
)您需要启用JavaScript才能运行此应用程序。这就是我执行此操作时遇到的错误。是否禁用了javascript?您使用的是什么浏览器,以及刚刚测试过的版本,它的启用。尝试将Delete
移动到all
变量,因为您不能有多个危险的HTML
,非常感谢您,伙计,您引导我走上了正确的道路,我在您的帮助下解决了这个问题!!我在地图上添加了这一行:(
)
<tr dangerouslySetInnerHTML={{all}}><button type="submit" className="delete">Delete</button></tr>