можно ли получить состояние из магазина Redux для конкретного отзыва комментариев - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть компонент класса реакции с состоянием.

class NewComponent extends Component {
  state = {
    modalIsOpen: false,
    aa: true,
    bb: false,
    cc: false,
    dd: false,
    ee: 1,
    dd: [],
    cc: [],
    ff: [],
    gg: [],
    vv: [],
    bb: '',
    rr: '',
    bb: '',
    axcx: 'recent',
    zxc: null,
    asd: [],
    qwe: '',
    asd: '',
    xc: false,
    wxc: false,
    zxcc: null,
    zxcxzc: [],
    zxc: {},
    zxc: false,
    zxc: [],
    zxc: null,
    zxc: '',
    imgGroup: aa.imgGroup,
    videoGroup: xx.videoGroup,
    docGroup: vv.docGroup,
  }
}

возможно ли сохранить это состояние где-нибудь в магазине и импортировать его в этот компонент? Сделай так. Я новичок в редуксе.

Любая помощь будет очень полезна

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Это можно сделать легко. Что вам нужно сделать, это добавить эти переменные в вашем редукторе в соответствующее хранилище (пусть магазин называется youstore ).

Reducer. js

const initialState = {
    modalIsOpen: false,
    aa: true,
    bb: false,
    cc: false,
    dd: false,
    ee: 1,
    dd: [],
    cc: [],
    ff: [],
    gg: [],
    vv: [],
    bb: '',
    rr: '',
    bb: '',
    axcx: 'recent',
    zxc: null,
    asd: [],
    qwe: '',
    asd: '',
    xc: false,
    wxc: false,
    zxcc: null,
    zxcxzc: [],
    zxc: {},
    zxc: false,
    zxc: [],
    zxc: null,
    zxc: ''
}

export default (state = initialState, action) => {
  switch (action.type) {
    case SOME_ACTION:
    ......
}

Теперь это должно быть доступно из вашего компонента в качестве реквизита. Для этого следует использовать метод mapStateToProps .

Your_component.jsx

const mapStateToProps = state => {
  return {
        modalIsOpen: state.youstore.modalIsOpen,
        aa: state.youstore.aa,
        bb: state.youstore.bb,
        cc: state.youstore.cc,
        dd: state.youstore.dd,
        .......
  };
};

const mapDispatchToProps = dispatch => {
  return {
    someMethod: data => dispatch(somemethod(data)),
  };
};

export default connect(
    mapStateToProps,
    mapDispatchToProps
  )(your_Component);

Чтобы изменить значение состояния, необходимо отправить действие до mapDispatchToProps

0 голосов
/ 05 февраля 2020

У вас не должно быть состояния внутри компонента, но если вы хотите его, вам нужно иметь 2 вещи - действие и редуктор. В редукторе вы только что установили состояние

dispatch(createState(state))

, которое необходимо добавить в свой компонент, но я бы настоятельно рекомендовал против него. Так что правильный способ сделать это - создать редуктор. js и объявить это состояние там.

  const myReducer = (initialState = state, action) => {
  switch (action.type) {
   ....
  }
};

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

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