Мое приложение activJS не рендерится, когда приставка меняет состояние в магазине - PullRequest
0 голосов
/ 11 мая 2019

Я новичок в изучении Redux. Когда я пишу store.subscribe (render), мое приложение компилируется без ошибок, но ничего не появляется. Я следил за статьей (https://medium.freecodecamp.org/understanding-redux-the-worlds-easiest-guide-to-beginning-redux-c695f45546f6), которая прекрасно объясняет избыточность, но эта часть подписки просто не работает. Любая помощь в этом отношении будет очень признательна.

Я попробовал все, что мог, я даже перестроил приложение, но не повезло.

index.js

. / Редуктор / index.js

. / Магазин / index.js

App.js

Ответы [ 3 ]

0 голосов
/ 11 мая 2019

Вы должны импортировать createStore.

import { createStore } from 'redux';

Тогда вам нужно сделать переменную хранилища и передать редуктор.

const store = createStore(yourReducer);

Тогда ваш редуктор будет выглядеть примерно так.

const initState = {

}

const yourReducer = (state = initState, action) => {
    return state;
}

export default yourReducer
0 голосов
/ 11 мая 2019

Сначала попробуйте изменить строку 17 файла App.js с

<HelloWorld tech={this.state.tech}/>

до:

<HelloWorld tech={store.getState().tech}/>

Иначе, попробуйте добавить конструктор в компонент приложения:

constructor(props) {
    super(props);
    store.subscribe(() => {
      this.setState({
        tech: store.getState().tech
      });
    });
  }
0 голосов
/ 11 мая 2019

Вам нужно добавить провайдера в свой магазин, чтобы подписаться на изменения. Для более подробной информации, пожалуйста, проверьте эту ссылку https://react -redux.js.org / api / provider

Пожалуйста, найдите образец кода для магазина.

import React from 'react'
import ReactDOM from 'react-dom'
import { Provider } from 'react-redux'

import { App } from './App'
import createStore from './createReduxStore'

const store = createStore()

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...