React.js输入的设置值如何更新?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (59)

我是react.js的初学者,这很神奇,但我面临着一个真正的问题:我需要使用普通的纯javascript来设置输入的值,但形成一些原因react.js不能按预期工作。以这个例子:打开这个URL http://autoescolalatorreta.wix.com/latorreta#!contact/c24vq

会看到有一个“电子邮件”输入字段,其ID是“CntctFrm2emailField”。我尝试使用以下代码改变它的值:

document.getElementById("CntctFrm2emailField").value = "testing@gmail.com";

但由于某些原因,如果尝试发送表单(单击SEND按钮),React.js并未更新其核心原因上的此值,将看到它将显示一条错误消息,指出电子邮件未被正确填充。但是,一旦我点击电子邮件字段内,并键入任何字母,然后单击发送按钮它工作正常,我的意思是,React.js看到新的价值。

那么,如何更改输入值并让React.js更新该值呢?

提问于
用户回答回答于

我已经编写并使用此函数来触发字段的更改状态:

function doEvent( obj, event ) {
    /* Created by David@Refoua.me */
    var event = new Event( event, {target: obj, bubbles: true} );
    return obj ? obj.dispatchEvent(event) : false;
}

像这样使用它:

var el = document.getElementById("CntctFrm2emailField");
el.value = "testing@gmail.com";
doEvent( el, 'input' );
用户回答回答于

你应该发布你的代码,以获得更好/更适合你的情况的合适答案,但有人认为这将起作用

defaultValue

而不是value输入。看看你的浏览器控制台,这就是反应会记录在那里。

根据代码,可以使用函数设置或类似或在提交表单时获取新的输入值。states value onKeyUp

扫码关注云+社区

领取腾讯云代金券