我创建了三个组件:
<MyInputComponent>
扩展了material ui组件
<Input>
<MyInputComponent>
通过接受作为 propsonInputTyping
并将其传递给onChange
of来处理 onChange of<MyInputComponent>
<App>
渲染并<Input>
传递onInputTyping
给<Input>
函数handleTypying
代码: https: //codesandbox.io/s/upbeat-bas-u0rj4
内部输入我有:
const Input: React.FC<Props> = (props: Props) => {
const { onInputTyping } = props;
return (
<MyInputComponent
onChange={(event) => onInputTyping && onInputTyping(event)}
/>
);
};
内部应用程序我有:
export default function App() {
const handleTyping = (event: React.ChangeEvent<HTMLInputElement>) => {
console.log(event.target.value);
};
return (
<div className="App">
<Input onInputTyping={(event) => handleTyping(event)} />
<br />
<Input onInputTyping={() => handleTyping(event)} /> <-- This still console.log the event, but why?
<br />
<Input onInputTyping={handleTyping} /> <-- This still console.log the event, but why?
</div>
);
问题: 我不明白为什么<Input>里面的最后两个App能够console.log用户键入的事件。
event我在第一个中传递了only Input,然后event将其传递给handleTyping。例子:<Input onInputTyping={(event) => handleTyping(event)} />
但
在第二个和第三个中,<Input>我不会将任何传递event给handleTyping. handleTyping那么,即使我没有event向它传递任何内容,怎么可能能够 console.log(event) 呢?
墨色风雨
相关分类