Redux - компонент не перерисовывается с помощью connect () - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть компонент, который должен скрывать / отображать контент в зависимости от того, вошел ли пользователь в систему или нет.Мой регистратор Redux показывает правильное изменение состояния, но подключенный компонент не выполняет повторную визуализацию.Сначала я подумал, что это проблема с мутацией, однако после попытки выполнить то же самое с immutable.js и redux-starter-kit createReducer безуспешно, я решил иначе.

Насколько я понимаю, при использовании mapStateToProps компонент должен выполнить рендеринг так же, как если бы это было локальное состояние.

Редуктор:

export default (
  state = {
    hasAuth: false,
  },
  action
) => {
  switch (action.type) {
    case AUTH_LOADED:
      return { ...state, hasAuth: true }
    default:
      return state;
  }
};

Компонент:

class Screen extends PureComponent {
  render() {
    return (
      <Fragment>
        {this.props.hasAuth && <Text>Logged In</Text>}
      </Fragment>
    );
  }
}

export default connect(state => ({
  hasAuth: state.auth.hasAuth,
}))(Screen);

Корневой редуктор

import { createStore, applyMiddleware, combineReducers } from 'redux';
import { batchedSubscribe } from 'redux-batched-subscribe';
import thunk from 'redux-thunk';
import reduxMulti from 'redux-multi';
import logger from 'redux-logger';

import auth from './reducers/auth';

const rootReducer = combineReducers({
  auth,
});

const createStoreWithMiddleware = applyMiddleware(thunk, reduxMulti, logger)(
  createStore
);

const createStoreWithBatching = batchedSubscribe(fn => fn())(
  createStoreWithMiddleware
);

export default createStoreWithBatching(rootReducer);

1 Ответ

0 голосов
/ 11 февраля 2019

Вы должны правильно подключить Redux в сочетании с batchedSubscribe.Вот документы с кратким руководством: https://github.com/tappleby/redux-batched-subscribe

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