React js-使用文本框值和c#
此时,作者和文本值是正确的。但是在“xhr.send(data)”中,当它点击C#API控制器方法时,这些值已经转换为文本“[object HTMLInputElement]”React js-使用文本框值和c#,c#,reactjs,textbox,C#,Reactjs,Textbox,此时,作者和文本值是正确的。但是在“xhr.send(data)”中,当它点击C#API控制器方法时,这些值已经转换为文本“[object HTMLInputElement]” 如果你已经读到这里,谢谢你…;-) 这两个问题都解决了同一个问题。您必须使用输入的值属性,而不是DOM节点本身 所以你应该做的是: handleCommentSubmit: function(comment) { var data = new FormData(); data.append
如果你已经读到这里,谢谢你…;-) 这两个问题都解决了同一个问题。您必须使用
输入
的值
属性,而不是DOM节点本身
所以你应该做的是:
handleCommentSubmit: function(comment) {
var data = new FormData();
data.append('Author', comment.Author);
data.append('Text', comment.Text);
var xhr = new XMLHttpRequest();
xhr.open('post', this.props.submitUrl, true);
xhr.onload=function() {
this.loadCommentsFromServer();
}.bind(this);
xhr.send(data);
此外,您还可以通过再次覆盖此值来清除输入:
this.props.onCommentSubmit({Author: author.value, Text: text.value});
在我看来,更好、更具反应性的方法是使用受控输入。定义状态变量author
和text
,并使用onChange
函数将其绑定。这样,您还可以在输入过程中进行一些验证
见工作示例:
还有请编辑您的帖子,删除您的所有大写文字。哈哈,我这样做是为了“尝试”并使其更具可读性。我将按原样离开,但在以后的帖子中不会这样做。谢谢,很有效,谢谢。此外,我将重构以使用受控输入。谢谢
handleCommentSubmit: function(comment) {
var data = new FormData();
data.append('Author', comment.Author);
data.append('Text', comment.Text);
var xhr = new XMLHttpRequest();
xhr.open('post', this.props.submitUrl, true);
xhr.onload=function() {
this.loadCommentsFromServer();
}.bind(this);
xhr.send(data);
this.props.onCommentSubmit({Author: author.value, Text: text.value});
author.value = '';
text.value = '';