У меня есть следующий компонент для добавления комментариев во всплывающем окне. Я хотел передать машину компоненту, обновить некоторые значения, а затем всплывающее окно закрылось, и объект, который был передан от родителя, обновлен.
Когда я пытаюсь обновить объект автомобиля и попытаться инициализировать его как новый массив или обновить какие-либо элементы, я получаю сообщение об ошибке только для чтения
Вот мой код
interface ICar
{
id: string;
comments: IComment[];
}
interface IComment
{
name: string;
comments: string;
}
const carComment = (car: ICar) => {
const [comm, setComm] = useState<string>("");
if (comm === "" && car.comments !== undefined && car.comments.length > 0) {
setComm(car.comments[0].comment);
}
const handleSaveClick = () => {
if (car.comments !== undefined && car.comments.length > 0) {
car.comments[0].comment = comm;
}
else {
car.comments = new Array<IComment>();
car.comments.push({ comment: comm, name: "Peter" });
}
return (
<>
<TextField
id="testMulti"
label="Comment"
multiline
rows={4}
defaultValue={comm}
variant="outlined"
key={1}
onChange={e => {
setComm(e.target.value);
}
}
/>
<Button onclick ="handleSaveClick"> Save </Button>
</>
}
}
export default CarComment;