Javascript React Js-无法在输入字段中输入值

Javascript React Js-无法在输入字段中输入值,javascript,reactjs,event-handling,icallbackeventhandler,Javascript,Reactjs,Event Handling,Icallbackeventhandler,我提前感谢你的所有想法。我这里的问题是电子邮件的输入字段没有更新。谁能给我一个解决办法 上述输入字段的事件处理程序如下所示: emailHandle=e=>{ 如果e.target.value!==未定义{ [[w-.[[[[[[[10]][[[[[[[[[[[[[w-][[[[w-][[[[[w-][[[[[w-][[[[[[[w-][[[[[[[[[[[[10-[[[[10[10[10[10[10[10[[10-[10-[10]]]]]新一个reg[[[[[[[[[[[[1]]]]]]]]的

我提前感谢你的所有想法。我这里的问题是电子邮件的输入字段没有更新。谁能给我一个解决办法

上述输入字段的事件处理程序如下所示:

emailHandle=e=>{ 如果e.target.value!==未定义{ [[w-.[[[[[[[10]][[[[[[[[[[[[[w-][[[[w-][[[[[w-][[[[[w-][[[[[[[w-][[[[[[[[[[[[10-[[[[10[10[10[10[10[10[[10-[10-[10]]]]]新一个reg[[[[[[[[[[[[1]]]]]]]]的[[[[[[[[[[[[[1]]]]]]]]的[[[[[[[[[[[[[[[[[[[[[[5-]]]]][5-[5-[10-[5-[10-]]]]][10-[10-[5]]]]][10.[5.[10.[5.[5.[5.[5.[5[0-4][0-9]| 1[0-9]{2}{1,2}\.{2}25[0-5]{2[0-4][0-9]| 1[0-9]{2}{2}[0-9]{1,2}\.$/i; 如果pattern.teste.target.value{ console.loge.target.value; this.setState{email:e.target.value} } } }
组件状态的初始值是多少?首先,如果您没有将状态上的email属性初始化为空字符串,并且它是未定义的,那么您将阻止该状态使用未定义的检查进行更新。但你有一个更大的问题。您正在测试输入的值是否与您的电子邮件正则表达式模式匹配。如果您使用该检查来阻止设置状态,那么这将永远不会起作用。onChange将在每次输入值更改时触发,这意味着它将一次更改一个字符。所以发生的是用户键入一个字符,onChange触发,但它与您的模式不匹配,并且您不更新状态


您要做的是始终更新状态,然后将其作为验证来处理,以阻止提交表单。或者您可以显示某种错误,但您需要始终使用e.target.value上的新值调用setState。

组件状态的初始值是多少?首先,如果您没有将状态上的email属性初始化为空字符串,并且它是未定义的,那么您将阻止该状态使用未定义的检查进行更新。但你有一个更大的问题。您正在测试输入的值是否与您的电子邮件正则表达式模式匹配。如果您使用该检查来阻止设置状态,那么这将永远不会起作用。onChange将在每次输入值更改时触发,这意味着它将一次更改一个字符。所以发生的是用户键入一个字符,onChange触发,但它与您的模式不匹配,并且您不更新状态


您要做的是始终更新状态,然后将其作为验证来处理,以阻止提交表单。或者您可能会显示某种错误,但您需要始终使用e.target.value上的新值调用setState。

正则表达式永远不会验证onChange事件,因为它会在每个键入的键上调用。所以你开始打字andy@gmail.com,但a不通过正则表达式。。。所以状态没有更新。。。这就好像您没有键入a一样。

正则表达式永远不会验证onChange事件,因为它在每个键入的键上都被调用。所以你开始打字andy@gmail.com,但a不通过正则表达式。。。所以状态没有更新。。。这就像你没有输入a一样。

你真的看到控制台日志了吗?还是没有?你是否删除了条件块并检查了是否只有setState在工作?谢谢,平川Yui和开发忍者@Matthew Brooks建议有效你真的看到控制台日志了吗?你是否删除了条件块并检查了是否只有设置状态有效?谢谢,平川Yui和开发忍者@Matthew Brooks建议有效谢谢