0
docsの反応例を反応還元型として学習していますが、reducer
ではなく、actions
になぜnextTodoのIDが保持されているのかわかりません。 todosが追加されるとそれが時間外に変化するため、これを状態と見なすべきではありませんか?私にとっては、アクションの目的は、ユーザーからの入力を取得し、それをアクションに変換し、状態を生成することではありません。状態を作り、それに与えられた行動に従ってそれを変えるのは、減速家の仕事です。還元還元剤に含まれる反応還元反応には、状態が含まれています
アクションコード
let nextTodoId = 0
export const addTodo = (text) => {
return {
type: 'ADD_TODO',
id: nextTodoId++,
text
}
}
減速は、純関数であることが予想されるためだリデューサーコード
const todo = (state, action) => {
switch (action.type) {
case 'ADD_TODO':
return {
id: action.id,
text: action.text,
completed: false
}
...
}
ですから、アクションから状態を作成するのが一般的です。コンポーネントがコントローラの役割を担当しているように見えますが、店舗はモデルですが、状態の作成がどこで起きるかはわかりません – mangocaptain
代わりにコンテナコンポーネントでこのロジックを実行しないことをどのように知っていますか?なぜそれを行動に残すのですか – mangocaptain
'nextTodoId'は状態の一部ではないでしょうか?状態がすべてのアプリケーション状態を含むと想定されている場合、なぜそれが状態外の変数として定義されているのかわかりません。これはまた、減速機の機能が純粋なままであることを可能にする。 – lammert