对于培训,我试图判断此代码库的输入值是否包含"@"当onBlur:

<form>
  <input
    type='text'
    name='my_input'
    value={inputValue}
    onChange={(e) => setInputValue(e.target.value)}
    onBlur={(e) => checkEmail(e.target.value)}
    ></input>
  <button>Save</button>
</form>

因此,我添加了一个函数,如果输入中没有"@",则在表单下方(或至少在输入字段下方)显示<div>,但没有成功:????

function checkEmail(value) {
  if (!value.includes('@')) {
    <div>⚠️ Warning, there is no @, this is not a valid email address.</div>;
  }
}

百知百还真.????

当输入无效时,如何获得表单或输入下方显示的<div>⚠️ Warning, there is no @, this is not a valid email address.</div>

提前谢谢.????

推荐答案

您将在checkEmail函数中返回JSX,这不太正确.相反,您需要做的是设置一个标志,指示是否应该呈现警告JSX,并设置一个逻辑,如果它为真,则执行此操作.inputValue作为一个状态在这种情况下非常方便,一个小的&&操作员应该处理渲染功能.

<form> ... </form>

{ inputValue && !inputValue.includes('@') && 
(<div>⚠️ Warning, there is no @, this is not a valid email address.</div>) }

PS:

Javascript相关问答推荐

字节数组通过echo框架传输到JS blob

Javascript,部分重排序数组

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

CheckBox作为Vue3中的一个组件

如何在 cypress 中使用静态嵌套循环

使用POST请求时,Req.Body为空

在WordPress中使用带有WPCode的Java代码片段时出现意外令牌错误

在运行时使用Next JS App Router在服务器组件中运行自定义函数

为什么这个.add.group({})在教程中运行得很好,但在我的游戏中就不行了?

为什么在函数中添加粒子的速率大于删除粒子的速率?

警告框不显示包含HTML输入字段的总和

React:防止useContext重新渲染整个应用程序或在组件之间共享数据而不重新渲染所有组件

如何修复错误&语法错误:不能在纯react 项目中JEST引发的模块&之外使用导入语句?

MongoDB通过数字或字符串过滤列表

select 2-删除js插入的项目将其保留为选项

调用特定数组索引时,为什么类型脚本不判断未定义

P5play SecurityError:无法从';窗口';读取命名属性';Add';:阻止具有源的帧访问跨源帧

不允许在对象文本中注释掉的属性

如何将PNG图像放在wix站点的Open Streemap map 上,使PNG图像成为 map 不可分割的一部分?

在继续循环之前,请等待带有异步调用的函数完成