Состояние не меняется должным образом в React Redux

Я новичок в React Redux. У меня есть инициализированное состояние, которое правильно отображается, вызывая соответствующий редуктор, какое задание возвращает состояние инициализации. Но после изменения состояния состояние, скорее всего, не изменится, и я не могу понять, почему

import { combineReducers } from 'redux';

const initialState = {
    songs:[
        {title:'No Scrubs', duration: '4:05'},
    ]
}

const songReducers = (state = initialState)=>{
    return state
}

const selectedSongReducer =(selectedSong=null,action)=>{
    if(action.type==='SONG_SELECTED'){
        return action.payload
    }

    return selectedSong;
}


const addSongReducer = (state=initialState,action)=>{
    if(action.type==="ADD_SONG"){
       return {
        ...state,   
        songs:[
           ...state.songs, {title:'All demo', duration: '4:05'}
        ]
    }
    }
    return state;
}

export default combineReducers({
    songs: songReducers,
    selectedSong: selectedSongReducer,
    addSong:addSongReducer
})

person Fatema tuz johura    schedule 30.04.2019    source источник


Ответы (1)


Ваша общая форма состояния будет выглядеть так:

state = {
    songs: {
        songs: [
            { title: 'No Scrubs', duration: '4:05' },
        ]
    },
    selectedSong: null,
    addSong: {
        songs: [
            { title: 'No Scrubs', duration: '4:05' },
        ]
    }
}

после самого первого вызова редуктора. Это то, что вы хотите? Спрашиваешь, потому что у тебя есть

state = {
    songs: {
        songs: [
            { title: 'No Scrubs', duration: '4:05' },
        ]
    },
    ...
}

вместо того, чтобы просто

state = {
    songs: [
        { title: 'No Scrubs', duration: '4:05' },
    ]
    ...
}
person Aiyaz N.    schedule 30.04.2019