Мне нужно обновить поле значения в объекте по определенному индексу, который находится в массиве в Firebase
Я попытался перебрать массив getState()
со всеми объектами;
затем получить индекс объекта, который мне нужен;
затем присвойте объекту новое значение, в данном случае содержимое;
затем перепишите весь массив (comments
) в newArray (actualComments
), как показано ниже.
И это работает какЯ хочу, но только в первый раз.Если я пытаюсь сделать это снова, я получаю ошибку TypeError: "content" is read-only
.
export const editComment = (comment) => {
return (dispatch, getState, { getFirebase, getFirestore }) => {
const firestore = getFirestore();
let actualComments = getState().firestore.data.topics[comment.topicId].comments;
let numberArray = actualComments.findIndex(e => {return e.id === comment.commentId});
actualComments[numberArray].content = comment.editContent;
firestore.collection('topics').doc(comment.topicId).update({
comments: actualComments
}).then(() => {
dispatch({ type: 'EDIT_COMMENT' })
}).catch((error) => {
dispatch({ type: 'EDIT_COMMENT_ERROR', error})
})
}
}