为了账号安全,请及时绑定邮箱和手机立即绑定

出现错误 React 无法识别 DOM 元素上的 `handleChange` 道具

出现错误 React 无法识别 DOM 元素上的 `handleChange` 道具

MMTTMM 2022-01-13 16:19:14
我正试图做出login form反应。但我收到了这个错误React 无法识别handleChangeDOM 元素上的 prop。如果您有意希望它作为自定义属性出现在 DOM 中,请将其拼写为小写字母handlechange。当我输入字段时,输入值也没有设置输入字段input它没有更新状态为什么?这是我的代码 https://codesandbox.io/s/quirky-clarke-qbkjw<form noValidate>      <TextBox        label="Username"        name="username"        type="text"        helperText="Assistive text"        handleChange={handleChange}        handleMouseDownPassword={handleMouseDownPassword}        value={userId}      />      <TextBox        label="Password"        name="password"        type="password"        helperText="Assistive text"        value={password}        showPassword={showPassword}        handleChange={handleChange}        handleClickShowPassword={handleClickShowPassword}        handleMouseDownPassword={handleMouseDownPassword}      />      <div className="button-group">        <button>LOGIN</button>      </div>    </form>
查看完整描述

3 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

TextBox组件中,您通过{...props}. 考虑到它TextField本身没有handleChange属性,我假设它将它传递给底层的输入 DOM 元素,该元素无法识别该道具。

您可以做的是提取内部使用的道具TextBox并使用 rest 参数收集其余部分,因此您最终不会传递不必要的道具:

export default function TextBox({handleChange, handleClickShowPassword, handleMouseDownPassword, value,  ...props}) {

另一种选择是{...props}TextField组件中删除并显式传递所有必要的道具。


查看完整回答
反对 回复 2022-01-13
?
呼如林

TA贡献1798条经验 获得超3个赞

我改变了handleChange()函数,你只是设置了VALUE状态,你需要在第一个输入时设置状态userId,在第二个输入时设置密码

在 b.js 添加 props name={stateName} 以便 handleChange() 可以知道哪个输入正在控制

查看演示以获取更多信息: https ://codesandbox.io/s/gracious-heisenberg-z4q4z

(其他答案解释了为什么您在控制台中收到该错误...道具)


查看完整回答
反对 回复 2022-01-13
?
ibeautiful

TA贡献1993条经验 获得超6个赞

React 不喜欢道具名称中的大写字母。而不是传递“handleChange”,而是传递“handlechange”。对于“handleMouseDownPassword”,您将收到类似的错误。

关于输入问题,我认为您没有提供足够的上下文。但是您必须有一个 handleChange 方法来在每次更改字段时更新状态。


查看完整回答
反对 回复 2022-01-13
  • 3 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号