@Khokhycg
web dev

React Redux почему не обновляется компонента после асинхронного обновления стор?

Делаю из редюсера сет в стейт с локального json
let initialState = {};

fetch('./data.json')
  .then((response) => response.json())
  .then((json) => Object.assign(initialState, json));

export default function data(state = initialState) {
  return state;
}


В компоненте достаю стейт, но компонента не обновляться по тем данным которые в стейте
import React from 'react';
import { useSelector } from 'react-redux';

export default (prop) => {
  const count = useSelector((state) => state);
  console.log(count);
  console.log(count.data);
  console.log(count.data.button);
  return (
    <button type="button" className={`button${(prop.bg ? ' button_bg' : '')}`}>
      {count.data.button ? count.data.button : '000000000'}
    </button>
  );
};


Вот так в консоли выглядят console.log с кода выше

5f08191ea35c3050184882.png

Как заставить компоненту брать значения из стор или что я делаю не так ?
  • Вопрос задан
  • 1439 просмотров
Решения вопроса 1
E1ON
@E1ON
Programming, Gamedev, VR
Вам здесь нужно использовать redux-thunk. Либо в компоненте сделать запрос и задиспатчить екшен с пришедшими данными.
Менять состояние можно только чистыми функциями, и так же нужно придерживаться иммутабельности данных.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Khokhycg Автор вопроса
web dev
Как сказано выше нужно юзать redux-thunk. Вот хорошая статья на эту тему тык
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы