Here is an input element with a value
and no onChange
handler.
const MyInput = ({ value }) => {
return (
<input value={value} />
);
};
React will raise a warning regarding the input
element because it has a
value
without an onChange
handler leaving React to wonder if it is
intended to be a controlled or uncontrolled component.
If our intention is to have the value
set but not allow the user to
directly change it, we just need to let React know that.
const MyInput = ({ value }) => {
return (
<input readOnly value={value} />
);
};
The readOnly
prop means we don't intend for the input to be modified by
user input. The React warning will now go away.
h/t Dillon Hafer