Topic: use ref hooks Input component
nachomartinez30
asked a year ago
hi! how can i use a ref hook in a Input element?
this doesn't work:
const myRef = useRef('')
...
<MDBInput
inputRef={ref=>myRef=ref}
/>
Jakub Chmura
staff premium answered a year ago
Hi @nachomartinez30,
You don't need to initiate ref on input because input has already initiated a reference.
Here is a snippet.
import React from 'react';
import { MDBInput } from 'mdbreact';
const Input = props => {
return (
<MDBInput
label='My input'
name='refInput'
value='testValue'
inputRef={e => console.log(e.value)}
type='text'
icon='user'
/>
);
};
export default Input;
Best, Kuba
mbdtsmh pro commented 9 months ago
I believe the Typescript types for the function signature are incorrect.
inputRef?:
| RefObject<HTMLInputElement>
| ((ref: RefObject<HTMLInputElement>) => void)
| null;
So the object ref would need to be accessed via ref.current but the type being passed appears to be HTMLInputElement
Piotr Glejzer staff commented 9 months ago
Yea, I think you are right.
behzad soleimani
answered 11 months ago
Hi @nachomartinez30,
You use inputref for access to ref and ref attributes e.g tabIndex:
<MDBInput
inputRef={ref => ref.tabIndex = "1"}
type='text'
/>
Jakub Chmura staff premium commented 11 months ago
You do it wrong. You need to use a function that will be changing everything inside of it.
example:
import React from 'react';
import { MDBInput, MDBBtn } from 'mdbreact';
const InputPage = () => {
let thisIsAReference = '';
const myRefFunction = (ref) => {
thisIsAReference = ref;
};
const changeVal = () => {
thisIsAReference.value = thisIsAReference.value + '1';
};
return (
<>
<MDBInput
label='My input'
name='refInput'
value='testValue'
inputRef={myRefFunction}
type='text'
icon='user'
/>
<MDBBtn onClick={changeVal}>Change input val</MDBBtn>
</>
);
};
export default InputPage;
behzad soleimani commented 11 months ago
for tabIndex? i need a tabIndex props. only way for that is to use inputref
Jakub Chmura staff premium commented 11 months ago
You can get access to tabIndex using this ref from the example above.
Answered
- User: Free
- Premium support: No
- Technology: React
- MDB Version: 4.22.1
- Device: CPU
- Browser: Chrome
- OS: Windows
- Provided sample code: No
- Provided link: No