Итак, у меня есть файл действий, определяющий следующее:
export const LogInUser = (user:User, token:string) => ({
type: UserActions.LoginUser, payload: {
user: user, token: token
}
})
Awesome.
Чтобы подключить его, я пишу метод mapDispatchToProps:
const mapDispatchToProps = (dispatch:any)=>({
loginUser: (user:User, token:string)=>{dispatch(LogInUser(user, token))}
})
Так что теперь я в основном дублирую существующую сигнатуру метода. Хорошо, я могу жить с этим. На самом деле это хорошая идея - что если подпись метода моего действия отличается от того, что я хочу показать на реальной странице по какой-то причине? Конечно, именно поэтому мы делаем это таким образом. Мне не нужна эта дополнительная сила, но это может быть удобно.
Но теперь я должен пойти к моим реквизитам и дублировать его снова :
interface Props extends RouteComponentProps<any>{
loginUser: (user:User, token:string)=>void
}
На данный момент мне интересно, почему диспетчеризация не просто передается в базовый класс для начала, а не включается в вызовы методов. Должна быть некоторая причина, примерно в каждом уроке, который я видела, используется этот базовый шаблон - хотя, если быть честным, большинство из них - это JavaScript, а не машинопись, и они не приводят к написанию и повторному написанию. написание одного и того же объявления метода несколько раз.