먼저 reduce
기능이 유효한 감속원. REDUX 감속기는
(state: State, action: Action) => State
흐름 개선 (이론적으로는 콜백에서 action.data
참조를 변경할 수)에 대한 비관적 인 다음 서명이 있어야합니다. 흐름은 정제를 유지하는 데 도움이되는 방법은 바인딩 const를 더 나은 IMO (docs)
function reduce(state: State, action: Action): number {
switch (action.type) {
case 'FIRST':
const data = action.data;
return state.list.findIndex(item => item.id === data.id);
case 'SECOND':
const itemId = action.itemId
return state.list.findIndex(item => item.id === itemId);
default:
return 0;
}
}
이상을 사용하는 것입니다,
function findIndex(state: State, id): number {
return state.list.findIndex(item => item.id === id);
}
function reduce(state: State, action: Action): number {
switch (action.type) {
case 'FIRST':
return findIndex(state, action.data.id)
case 'SECOND':
return findIndex(state, action.itemId)
default:
return 0;
}
}
또한 여러 도우미 기능으로 케이스를 분리, 당신은 찾을 수 있습니다 redux repo에서 flow-typed 앱의 예 (examples/todos-flow 참조)
흐름이 무엇인지 전혀 알지 못해서 감속기가 실제로 동작하는 것으로 보이는 경우 문제가 없습니다. 여하튼 여기에 redux를 사용하는 흐름인가 아니면 redux가하고 있다고 생각하는지 테스트하는 것입니까? – ajmajmajma
두 가지는 분리되어 있습니다. 저는 Redux 액션과 리듀서에 Flow 타입 주석을 추가하려고합니다. –
알았습니다. 마지막 편집으로 무엇을 의미하는지 확신 할 수 없습니다 - 왜 그것이 오류라고 기대합니까? – ajmajmajma