@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

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

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

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 160 000 до 230 000 ₽
PaulCamper Берлин
от 2 000 до 3 100 $
08 авг. 2020, в 12:03
15000 руб./за проект
08 авг. 2020, в 11:31
500 руб./за проект
08 авг. 2020, в 09:16
1000 руб./за проект