我知道有人可能会说这是重复的,但它不是,请先看看我的问题,
我正在使用django多态模型,我必须根据用户在发布过程的前几步中对他们想要发布的内容所做的选择来给用户一个表单,所以在react前端创建数千个表单将为我在react前端和django后端提供数百万个工作。
所以我不得不让django渲染它的模型表单,然后我序列化输出的HTML内容并将其推送到react前端,然而在react中使用HTML现在被证明是一个问题,因为表单可以正确显示,但提交表单时,危险的呈现HTML表单字段没有被捕获,我最大的问题实际上是,有没有一种方法可以读取表单元素,
我尝试了这两个代码,但都得到了相同的结果
<form onSubmit={this.PostProduct} method='post'>
<input name={"just_see"}/> // accessing this form field is possible coz it is react compenent
{ ReactHtmlParser(this.state.form) } // cannot access form field here
<button>submit<button>
<form>
同样,这个和上面的一样工作。
<input name={"just_see"}/>
<div dangerouslySetInnerHTML={{__html: this.state.form}}/>
如果有人知道我能做什么,我将不胜感激
发布于 2019-10-23 00:38:06
我认为您可以创建一个ref,然后导航到DOM元素:
constructor(props) {
super(props)
this.myRef = React.createRef();
}
onClick() {
e.preventDefault();
let myform= this.myRef.current
let inputs_ = myform.querySelectorAll('input')
var data = {}
let index = 0
for (let entry of inputs_) {
data[entry.name] = entry.value
index += 1
}
console.log(data)
}
render() {
return <div ref={myRef} dangerouslySetInnerHTML={{__html: this.state.form}}/>
}
https://stackoverflow.com/questions/58508662
复制相似问题