Есть ли нежелательные побочные эффекты с аргументами по умолчанию для создателя действий ? Или даже используя Object.assign
внутри создателя действия?Аргументы по умолчанию в создателе действия Redux
Например, у нас есть создатель действия под названием notify()
, который создает уведомления в нашем магазине.
Хотя нам нужны аргументы по умолчанию для этих уведомлений, у нас есть отдельная функция, называемая createNotice
, которая позаботится об этом.
Наши действия создают выглядит так:
export function notify(notification) {
return {
type: ADD,
notification,
};
}
И наш createNotice
выглядит следующим образом:
export function createNotice(title = '', message, level = 'info', settings = {}) {
return merge({}, {
title,
message,
key: (new Date).getTime(),
action: 'Dismiss',
dismissAfter: 5000,
className: level,
}, settings);
}
Я действительно нелюбовь приходится импортировать createNotice
и notify
плюс связать notify
для отправки для каждого который использует его для выполнения следующих операций:
<Button onClick={() => nofity(createNotice('Something Happened', 'I think it worked!'))} />
Id, а что-то вроде следующего:
<Button onClick={() => nofity('Something Happened', 'I think it worked!')} />
через имеющий создателя действий как таковой:
export function notify(notice) {
return {
type: ADD,
createAction(notice),
};
}
Но что чувствует, как Redux антишаблоном мне?