Redux: Передача аргументов действиям, которые можно получить из State? - PullRequest
0 голосов
/ 09 октября 2018

У меня есть сборник статей.Пользователь иногда редактирует или удаляет статью.Мое приложение отслеживает состояние, в котором статья в настоящее время обрабатывается (назовите это currentArticleId).

Теперь, когда пользователь редактирует или удаляет статью, я бы затем дал своему создателю действия currentArticleId в качестве аргумента (например: deleteArticle(this.props.currentArticleId)), или я НЕ сделал бы это и просто запустил создателя действия без аргументов (например: deleteArticle()) и получил бы currentArticleId из состояния в моем действии создатель?

Какая здесь лучшая практика?Почему я выбрал бы одно решение над другим?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Если под состоянием вы подразумеваете состояние приложения Redux, то нет правильного или неправильного ответа.Вы даже можете иметь два действия - deleteCurrentArticle() или deleteArticle(articleId) и использовать то, что больше подходит вам.

Однако, если вы спрашиваете о состоянии компонента, я думаю, что создатели действий должны быть отделены от компонентов.Поэтому я бы предпочел передать currentArticleId в качестве аргумента.

0 голосов
/ 09 октября 2018

Я бы сделал вашего создателя действий более гибким, передав идентификатор статьи, затем действие удаления статьи могло бы удалить текущую статью или любую другую статью, которую он хотел.

edit: я хотел бы добавитьчто обычно есть лучшие альтернативы хранению такой информации в глобальном состоянии.Если вы редактируете / удаляете только одну статью на странице, вы можете указать URL-адрес, например article/{id}/edit, а затем взять идентификатор оттуда и передать его в нужное вам место, или если у вас есть список статей, каждый из которыхесть редакторы, рассмотрите возможность передачи идентификатора статьи в качестве опоры в компонент редактора.

...