Я хотел бы сохранить данные объекта внутри состояния массива. Но когда я пытаюсь вызвать действие в редукторе, INITIAL_STATE.highlightedVerse всегда приводит к undefined, когда я пытаюсь использовать console.log(). Это должен быть пустой массив, а не неопределенный.
Это зависимости, которые я использовал в package.json Expo v32.0.0, React v16.5.0, Redux v4.0.1, React Redux v5.1.1, Redux Persist v.5.10.0.
Это код, который я написал:
import {
ADD_BIBLE_VERSE_HIGHLIGHT,
REMOVE_BIBLE_VERSE_HIGHLIGHT,
} from 'ndc-ministry/redux/actions/types'
const INITIAL_STATE = {
highlightedVerse: [],
}
const reducer = (state = INITIAL_STATE, action) => {
switch (action.type) {
case ADD_BIBLE_VERSE_HIGHLIGHT:
const currentHighlightedVerse = state.highlightedVerse
if(currentHighlightedVerse.length > 0){
currentHighlightedVerse.forEach(obj => {
if(action.payload.bookIndex == obj.bookIndex
&& action.payload.chapterIndex == obj.chapterIndex
&& action.payload.verseIndex == obj.verseIndex
) {
return {...state}
}
})
}
return {
...state,
highlightedVerse: [...state.highlightedVerse, action.payload]
}
case REMOVE_BIBLE_VERSE_HIGHLIGHT:
const deletedHighlightVerse = state.highlightedVerse.filter(obj => JSON.stringify(action.payload) != JSON.stringify(obj))
return {
...state,
highlightedVerse: deletedHighlightVerse
}
default:
return state
}
}
export default reducer
В режиме разработки работает нормально. Но когда я обновил его до рабочей версии APK/IPA, он всегда возвращает значение undefined, и я понятия не имею, как это сделать. Я уже пытался искать два дня, но так и не смог понять, почему.
Спасибо за чтение этого вопроса, и я надеюсь, что кто-то может помочь мне в этом :)