Как использовать хуки React + Redux


Это лучший способ подключить магазин Redux с хуками?

Привет, я делаю простое приложение todo, используя хуки React, подключенные к Redux. Шаблон, который я создал, работает, но мне интересно, правильно ли я это делаю, есть ли что-то неправильное в этом подходе, есть ли другой шаблон, который следует использовать?

App.jsx

  const [initialTodos, updateTodos] = useState(store.getState());

  const cleanup = store.subscribe(() => updateTodos(store.getState()));

  useEffect(() => {
    return () => cleanup();
  });

dispatching happens in other components + the todo app works

Спасибо за любой вклад

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
478
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Оказывается, лучше тоже использовать 'react-redux' connect.

const mapStateToProps = state => ({state: state})

connect(mapStateToProps)(Component)

поскольку connect автоматически заботится о store.subscribe и т. д.

Так что бросайте хуки все вместе :)

Это устарело. connect() больше не нужен. Пожалуйста, проверьте мой ответ для текущей реализации.

Hugodby 05.09.2019 14:53

когда появляются хуки, чтобы сделать наш код намного проще, так почему мы должны использовать старые способы? Как ранее прокомментировал @Hugodby, использовать useSelector и useDispatch проще.

Ali Torki 12.11.2019 09:07

react-redux пакет поддерживает хуки, начиная с версии 7.1. Вместо функции connect() можно использовать хуки Redux.

Это пример реализации счетчика, где значением счетчика управляет Redux.

import React from 'react'
import { useDispatch, useSelector } from 'react-redux'

export const CounterComponent = () => {
  const dispatch = useDispatch();
  const counter = useSelector(state => state.counter);

  return (
    <div>
      <span>{counter}</span>
      <button onClick = {() => dispatch({ type: 'INCREMENT_COUNTER' })}>
        Increment counter
      </button>
    </div>
  );
}

Источник: https://react-redux.js.org/api/hooks

Другие вопросы по теме