onClick 函数在 reactJS 输入组件中不起作用
onClick function is not working in reactJS input component
这是我的输入组件,当我在另一个组件中调用它时。但是 onClick 函数在那里不起作用。请提供任何解决方案。
这是输入组件
import React, { InputHTMLAttributes } from 'react'
import { FormControl } from 'react-bootstrap';
import './input.css';
import clsx from 'clsx';
interface Input extends InputHTMLAttributes<HTMLInputElement>{
half: boolean,
lableText: string,
typeOfInput: string,
garyBold?:boolean
value?:any
placeholder?:string
}
const InputField = ({half, lableText, typeOfInput, garyBold,value, placeholder}:
Input) => {
return (
<div className = {half ? "halfWidth" : "fullWidth"} >
<label className={garyBold ? "grayBold" : ''}>{lableText}</label>
<FormControl
defaultValue={value ? value :''}
required
type={typeOfInput}
className={clsx('mb-1 inputItself')}
aria-label="Recipient's username"
aria-describedby="basic-addon2"
placeholder={placeholder}
/>
</div>
)
}
export default InputField
我在这里调用我的函数(Login.tsx)
<InputField onChange={()=> console.log('ok')} typeOfInput='text' half={false} lableText={"Email Address/ Username"}/>
但是控制台没有任何显示。如果您知道答案,请提供帮助。将不胜感激。
它没有触发的原因是你没有给它一个 onChange
道具。自定义组件没有您可以使用的相同内在挂钩,因此您需要自己传递它们。
看看这个...
import React, { InputHTMLAttributes } from 'react'
import { FormControl } from 'react-bootstrap';
import './input.css';
import clsx from 'clsx';
interface Input extends InputHTMLAttributes<HTMLInputElement>{
half: boolean,
lableText: string,
typeOfInput: string,
garyBold?:boolean
value?:any
placeholder?:string,
onChange: () => void, // I added this
}
const InputField = ({half, lableText, typeOfInput, garyBold,value, placeholder, onChange}: // And this
Input) => {
return (
<div className = {half ? "halfWidth" : "fullWidth"} >
<label className={garyBold ? "grayBold" : ''}>{lableText}</label>
<FormControl
defaultValue={value ? value :''}
required
type={typeOfInput}
className={clsx('mb-1 inputItself')}
aria-label="Recipient's username"
aria-describedby="basic-addon2"
placeholder={placeholder}
onChange={onChange} // And this
/>
</div>
)
}
export default InputField
这是我的输入组件,当我在另一个组件中调用它时。但是 onClick 函数在那里不起作用。请提供任何解决方案。
这是输入组件
import React, { InputHTMLAttributes } from 'react'
import { FormControl } from 'react-bootstrap';
import './input.css';
import clsx from 'clsx';
interface Input extends InputHTMLAttributes<HTMLInputElement>{
half: boolean,
lableText: string,
typeOfInput: string,
garyBold?:boolean
value?:any
placeholder?:string
}
const InputField = ({half, lableText, typeOfInput, garyBold,value, placeholder}:
Input) => {
return (
<div className = {half ? "halfWidth" : "fullWidth"} >
<label className={garyBold ? "grayBold" : ''}>{lableText}</label>
<FormControl
defaultValue={value ? value :''}
required
type={typeOfInput}
className={clsx('mb-1 inputItself')}
aria-label="Recipient's username"
aria-describedby="basic-addon2"
placeholder={placeholder}
/>
</div>
)
}
export default InputField
我在这里调用我的函数(Login.tsx)
<InputField onChange={()=> console.log('ok')} typeOfInput='text' half={false} lableText={"Email Address/ Username"}/>
但是控制台没有任何显示。如果您知道答案,请提供帮助。将不胜感激。
它没有触发的原因是你没有给它一个 onChange
道具。自定义组件没有您可以使用的相同内在挂钩,因此您需要自己传递它们。
看看这个...
import React, { InputHTMLAttributes } from 'react'
import { FormControl } from 'react-bootstrap';
import './input.css';
import clsx from 'clsx';
interface Input extends InputHTMLAttributes<HTMLInputElement>{
half: boolean,
lableText: string,
typeOfInput: string,
garyBold?:boolean
value?:any
placeholder?:string,
onChange: () => void, // I added this
}
const InputField = ({half, lableText, typeOfInput, garyBold,value, placeholder, onChange}: // And this
Input) => {
return (
<div className = {half ? "halfWidth" : "fullWidth"} >
<label className={garyBold ? "grayBold" : ''}>{lableText}</label>
<FormControl
defaultValue={value ? value :''}
required
type={typeOfInput}
className={clsx('mb-1 inputItself')}
aria-label="Recipient's username"
aria-describedby="basic-addon2"
placeholder={placeholder}
onChange={onChange} // And this
/>
</div>
)
}
export default InputField