Reactjs Redux reducer返回未定义的错误,即使它被初始化为null
我的Redux减速机有问题。在selectedSongReducer中,selectedSong被定义为null,因此它不会返回错误,但我仍然得到以下错误:错误:Reducer“selectedSong”在初始化期间返回未定义。如果传递给减速器的状态未定义,则必须显式返回初始状态。初始状态可能不是未定义的。如果不想为此减速器设置值,可以使用null而不是undefined 以下是减速器代码:Reactjs Redux reducer返回未定义的错误,即使它被初始化为null,reactjs,redux,Reactjs,Redux,我的Redux减速机有问题。在selectedSongReducer中,selectedSong被定义为null,因此它不会返回错误,但我仍然得到以下错误:错误:Reducer“selectedSong”在初始化期间返回未定义。如果传递给减速器的状态未定义,则必须显式返回初始状态。初始状态可能不是未定义的。如果不想为此减速器设置值,可以使用null而不是undefined 以下是减速器代码: import { combineReducers } from 'redux'; const song
import { combineReducers } from 'redux';
const songsReducer = () => {
return [
{ title: 'A' , length: '4:05' },
{ title: 'B' , length: '2:30' },
{ title: 'C' , length: '3:15' },
{ title: 'D' , length: '1:45' },
]
};
const selectedSongReducer = (selectedSong = null, action) => {
if(action.type = 'SONG_SELECTED') {
return action.payload;
}
return selectedSong;
}
export default combineReducers({
songs: songsReducer,
selectedSong: selectedSongReducer
})
有人对问题可能出在哪里有什么建议吗?您不小心使用了赋值运算符,而没有在此处比较值
如果(action.type='SONG_SELECTED')。它将始终被执行。您无意中使用了赋值运算符,而不是在此处比较值
如果(action.type='SONG_SELECTED')。它将永远被执行。我真不敢相信我没有看到这一点。非常感谢你指出这一点。我不敢相信我没有看到这一点。非常感谢你指出这一点。