React компонент TextField библиотеки @mui/material — это сложный элемент и получить значение через свойство ref нельзя.
Разработчики понимали, что доступ к HTMLInputElement внутри компонента нужно предоставить, и потому реализовали свойство inputRef, которое как раз и ссылается на этот элемент.
Следующая демка показывает как это работает:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import { Button, TextField } from '@mui/material'; import React, { useRef } from 'react'; interface IProps {} export const ValueAccessDemo = (props: IProps): React.ReactElement => { const ref = useRef<HTMLInputElement | null>(null) const handleClick = (e: React.MouseEvent): void => { if (ref.current !== null) console.log(ref.current.value); }; return ( <TextField label="Текст" inputRef={ref} /> <Button onClick={ handleClick }>Применить</Button> ); }; |