Вы можете изменить тип значения на основе некоторого истинного / ложного состояния.
// Add these variables to your component to track the state
const [showPassword, setShowPassword] = useState(false);
const handleClickShowPassword = () => setShowPassword(!showPassword);
const handleMouseDownPassword = () => setShowPassword(!showPassword);
// Then you can write your text field component like this to make the toggle work.
<TextField
label='Some label'
variant="outlined"
type={showPassword ? "text" : "password"} // <-- This is where the magic happens
onChange={someChangeHandler}
InputProps={{ // <-- This is where the toggle button is added.
endAdornment: (
<InputAdornment position="end">
<IconButton
aria-label="toggle password visibility"
onClick={handleClickShowPassword}
onMouseDown={handleMouseDownPassword}
>
{showPassword ? <Visibility /> : <VisibilityOff />}
</IconButton>
</InputAdornment>
)
}}
/>
В вашем примере вы используете al oop до go через свое поле. Замена вашего текстового поля моим примером добавит переключатель ко всем полям. Это (вероятно) не то, что вам нужно, поэтому вам придется искать другой способ визуализации этих полей.
// Required imports from the example.
import { TextField, InputAdornment, IconButton } from "@material-ui/core";
import Visibility from "@material-ui/icons/Visibility";
import VisibilityOff from "@material-ui/icons/VisibilityOff";