javascript - 分配的输入值未定义,因为永远不会触发 onChange
问题描述
我需要解决以下问题...
当用户注册成功时,他会被重定向到登录页面,其中填写了电子邮件输入字段并专注于密码字段。(电子邮件通过参数发送)
现在由于未触发 onChange 事件(因为未键入电子邮件),它的值返回未定义,因此登录失败。
有没有办法解决这个问题?
你可以在下面找到我的代码
const email = queryString.parse(location.search).email; // returns email correctly
以下是一个组件,因此每个属性都设置为name={props.name} value={props.value}
etc
const handleChange = (name, value) => {
setData((prev) => ({ ...prev, [name]: value }));
};
<InputField name="email" type="email" onChange={handleChange} value={email ? email : ""}
因此,当手动输入所有内容时,data
按预期更新并且一切正常,但是当从注册重定向到登录并通过变量填写字段时email
,数据中的电子邮件将是未定义的。
当电子邮件作为输入字段中的值放置时,有没有办法触发 onChange?
提前致谢!
解决方案
问题是handleChange
没有得到和的name
参数value
您可以尝试类似:(假设名称是定义的变量)
<InputField name="email" type="email" onChange={(e, {value}) => handleChange(name, value)} value={email ? email : ""}
推荐阅读
- angular - 角度的ag-grid中的单元格渲染问题
- python - 在 QFileDialog pyqt5 中选择文件或文件夹
- c# - 命令未在当前项目上触发
- matplotlib - 在 Jupyter 笔记本中关闭 Specgram 自动绘图
- swift - 使用 pagecontroller 折叠大标题
- angular - 打开 Angular Material 对话框会使父显示褪色?
- matrix - Octave - 比较不相等的矩阵并找到相等的元素
- c# - DocuSign API:填充动态字段
- python - 在 C# 控制台应用程序中运行 Python EXE(在 PyInstaller 中创建)
- reactjs - ReactJS进度条使用状态动态更新?