2016-11-03 23 views
1

新しいtodotodos(古典的なもの)に追加することに問題があります。それをReact/Reduxで行います。ここでReact/Redux:状態が2回呼び出されましたか?

reducer-todos.jsです:

enter image description here

どういうわけかtodosオブジェクトが4なり、ないアレイ[4]:

export default function (state=[ 
    { 
     id: 0, 
     todo: "Study English" 
    }, 
    { 
     id: 1, 
     todo: "Run sprint" 
    }, 
    { 
     id: 2, 
     todo: "Call Bob" 
    }], action) { 
    switch(action.type) { 
     case "ADD_TODO": 
      return state.push({id: state.length, todo: action.todo}); 
      break; 
    } 
    return state; 
} 

ここで私が得る問題です。なぜこうなった?

追加情報が必要な場合はお知らせください。

答えて

1

何とかtodosオブジェクトはArray [4]ではなく4になります。なぜこうなった?

新しいサイズを返すpushを使用しています。代わりにconcatを使用して、新しい項目を変更せずに新しい配列を返すようにしてください。

ので、この:

return state.push({id: state.length, todo: action.todo}); 

はなるはずです。

return state.concat({id: state.length, todo: action.todo}); 
+0

それは働きました!ありがとう、ありがとう、ありがとう! –

+0

@SamKirklandWA大歓迎です!回答の横にあるチェックマークをクリックして受け入れ、他の人にあなたの問題が解決したことが分かります。 – Jack

+0

3分過ぎます。 ) –

関連する問題