我在我的react-redux應用程序中設置了動作和縮減器。我需要一個函數來更新狀態中的屬性並將對象添加到其列表中,如果可能的話使用擴展語法。這是我到目前爲止有:如何將對象屬性添加到狀態中的另一個屬性?
const defaultState = {
genres: {}
}
export default function(state = defaultState, action) {
switch(action.type) {
case 'ADD_GENRE':
return {
...state,
genres[action.name]: action.list //new code here
}
default:
return state;
}
}
我需要的類型物業使用它的屬性名像這樣要像一個數組動態訪問:
const getMusicFromGenre = (genre) => {
return state.genres[genre];
}
減速機應該接受以下動作,然後修改相應的狀態:
// action
{
type: 'ADD_GENRE,
name: 'Rock',
list: ['Bohemian Rhapsody', 'Stairway to Heaven', 'Hotel California']
}
// old state
{
genres: {
"Pop": ['Billie Jean', 'Uptown Funk, 'Hey Jude']
}
}
// new state
{
genres: {
"Pop": ['Billie Jean', 'Uptown Funk, 'Hey Jude'],
"Rock": ['Bohemian Rhapsody', 'Stairway to Heaven', 'Hotel California']
}
}
如果有必要,我願意使用不同的方法。
我試圖我自己找到解決方案,但問題太難以谷歌。感謝您的鏈接,明天我們將通過一杯明天的咖啡讀取這些信息 – Brian