【发布时间】:2019-08-16 09:25:14
【问题描述】:
我想将对象数据保存在我的数组状态中。 但是当我尝试在 reducer 中调用一个动作时,当我尝试 console.log() 时,INITIAL_STATE.highlightedVerse 总是导致 undefined。它应该是一个空数组,而不是未定义的。
这些是我在 package.json 中使用的依赖项 世博会 v32.0.0, 反应 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 时,它总是返回未定义,我不知道如何。我已经尝试搜索了两天,但仍然不明白为什么。
感谢您阅读此问题,我希望有人可以帮助我:)
【问题讨论】:
-
你需要展示你如何连接你的组件、你的动作调度器以及你的根减速器是如何设置的。
-
听起来好像不太容易解决。启动应用时显式初始化如何?
-
你能告诉我们你创建商店的代码吗?
标签: reactjs react-native redux react-redux redux-persist