javascript - React onChange 事件不会在自定义输入上触发
问题描述
我有一个像这样的自定义输入组件:
import * as React from "react";
const Input = (props) => {
return (
<input
type={props.type}
name={props.name}
className={props.className}
value={props.value}
onChange={props.onChange}
/>
);
};
export default Input;
我正在尝试处理 onChange 事件,但它不会在这里触发:
import Input from "../../Components/Input";
...
<Input
type="text"
onChange={e => console.log(`${e.target.value}`)}
id="subject"
className="rounded-sm px-4 py-3 mt-3 focus:outline-none w-full border bg-transparent border-
gray-300"
placeholder="Subject"
/>
我尝试通过道具将事件传递给自定义输入,并尝试直接在 Input 组件中处理事件。
使用 useState 更改状态的期望行为:
const [subject, setSubject] = useState('');
...
onChange={e => setSubject(e.target.value)}
当我添加这些行时,输入变为只读
解决方案
如果您使用像 Input 这样的自定义组件,则必须指定所有道具,正如您所见,您正在为 Input 组件提供 onChange 道具,而不将其传递给输入标签。
import * as React from "react";
const Input = (props) => {
return (
<input
type={props.type}
name={props.name}
className={props.className}
value={value}
onChange={props.onChange}
/>
);
};
export default Input;
推荐阅读
- java - 如何使用 java 库在 google sheet api 上设置自动换行策略
- velo - 您如何允许站点成员在 Wix 成员站点上更改他们的登录名(即他们的电子邮件)?
- rest - 通过 HTTP 的 Apache 气流
- python - 我如何专门将 \n 用于打印功能?
- wifi - Arduino 使用 Wifi 扩展器的 Wifi Nat 代码编译错误
- airflow - Airflow 无法识别 DAG 调度
- python - 为什么在计算两个字符串之间的比率时,fuzzywuzzy Ratio() 使用稍微不同的 Levenshtein 距离实现?
- python - Matplotlib fig.canvas.renderer 在 Win 上工作,在 Mac 上失败
- python-3.x - 模块“tensorflow”没有属性“merge_summary”错误
- java - 如何将两个链表乘以第三个链表?