나는 docs에서 todo 예제를 react-redux 형태로 배웠고 reducer
이 아닌 actions
에 nextTodo의 ID가 저장되는 이유를 알지 못합니다. todos가 추가되면 초과 작업이 변경되므로 상태로 간주해서는 안됩니까? 나에게 액션의 목적은 사용자로부터 일부 입력을 가져 와서 액션으로 변환하는 것이지 상태를 생성하는 것이 아니다. 주 (state)를 만들고 그것에 주어진 행동에 따라 변경하는 것은 감속기의 임무입니다.리듀서에 포함 된 상태 대 리듀서에 포함 된 상태
감속기는 순수 함수가 될 것으로 예상되기 때문이다 액션 코드
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
}
...
}
그래서 액션에서 상태를 만드는 것이 일반적입니다. 나에게 그것이 구성 요소가 컨트롤러의 역할을 돌보는 것처럼 보이고 스토어가 모델이지만 상태 생성이 어디에서 발생하는지 모르겠다 @ madara-uchiha – mangocaptain
컨테이너 구성 요소에서이 논리를 수행하지 않는 것을 어떻게 알 수 있습니까? ? 왜 행동에 그대로 두어야합니까? – mangocaptain
'nextTodoId'가 주에 속해서는 안됩니까? 상태가 모든 응용 프로그램 상태를 포함한다고 가정 할 경우 왜 외부의 변수로 정의되는지 이해할 수 없습니다. 그것은 또한 감속기 기능을 순수하게 유지할 수 있습니다. – lammert