Как изменить значение объекта передаваемого через props

Есть компонент MessageInput, в котором есть кнопка Send. При нажатии кнопки, в store (redux) передается другой компонент (OwnMessage) в компонент так же передаются пропсы. Кнопка Send:

const sendMessage = ()=>{
        const time = new Date();
        let hours = time.getHours();
        let minutes = time.getMinutes();
        const msgTime = `${hours}:${minutes}`;
        let text = document.querySelector('.message-input-text');
        const message = <OwnMessage text={text.value} time={msgTime} date={Date.now()}/>
        dispatch(addMessageAction({message,msgTime}));
        text.value = '';
    }

Компонент OwnMessage сохраняется в store: введите сюда описание изображения

Пытался поменять значение так:

 return {...state, messages: state.messages[i].props.text = 'asd'}

Но появляется ошибка: введите сюда описание изображения

Как я могу изменить значение text, которое передается через props?


Ответы (1 шт):

Автор решения: SiRanWeb

Все пропсы иммутабельны, т.е. они не должны меняться. Это правило React'a. В твоем случае могу лишь посоветовать хранить в сторе не сам компонент (что само по себе уже немного странно), а данные, которые в этот компонент передаются. И в следующий раз просто доставать из стора все что нам надо и опрокидывать в требуемый компонент.

→ Ссылка