我的 Redux 减速器有问题。在selectedSongReducer中,selectedSong被定义为null,因此它不会返回错误,但我仍然收到以下错误:错误:Reducer“selectedSong”在初始化期间返回未定义。如果传递给reducer的状态未定义,则必须显式返回初始状态。初始状态可能不是未定义的。如果您不想为此减速器设置值,可以使用 null 而不是 undefined。
这是减速器代码:
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
})
有人对可能出现问题的地方有任何建议吗?
您不小心使用了赋值运算符,而不是比较此处的值
if(action.type = 'SONG_SELECTED')
它总是会被执行。