Извлечь локальное состояние в Redux
Вы почти закончили! Напомним, что вы написали весь код Redux, чтобы Redux мог контролировать управление вашим приложением React messages. Теперь, когда Redux подключен, вам нужно извлечь управление состоянием из компонента Presentational
и в Redux. В настоящее время вы подключены к Redux, но вы управляете состоянием локально в составе Presentational
компонента.
В компоненте Presentational
сначала удалите свойство messages
в локальном state
. Эти сообщения будут управляться Redux. Затем измените метод submitMessage()
так, чтобы он отправил submitNewMessage()
из this.props
и передал текущее сообщение из локального state
в качестве аргумента. Поскольку вы удалили messages
из локального состояния, удалите свойство messages
из вызова this.setState()
здесь. Наконец, измените метод render()
чтобы он отображал сообщения, полученные из props
а не state
. После внесения этих изменений приложение будет продолжать функционировать одинаково, за исключением того, что Redux управляет состоянием. В этом примере также показано, как компонент может иметь локальное state
: ваш компонент по-прежнему отслеживает ввод пользователя локально в своем собственном state
. Вы можете видеть, как Redux предоставляет полезную структуру управления государственными ресурсами поверх React. Вы достигли того же результата, используя сначала локальное состояние React, и это обычно возможно с помощью простых приложений. Однако, поскольку ваши приложения становятся все больше и сложнее, так же как и ваше управление состоянием, и это проблема, которую решает Redux.