Извлечение данных из реактивного редукса - PullRequest
0 голосов
/ 23 мая 2018

У меня есть действие, которое получает некоторую информацию от моего бэкэнда, с этим действием:

export const getGroup = id => dispatch => {
  axios
    .get(`/api/group/${id}`)
    .then(res => {
      if (res.data === null) {
        throw { error: "no group found" };
      }
      dispatch({
        type: GET_GROUP,
        payload: res.data
      });
    })
    .catch(err =>
      dispatch({
        type: GET_ERRORS,
        payload: err
      })
    );
};

Я отобразил данные, используя mapStateToProps, и назначил данные переменной, используя деструктуризацию -

const { group } = this.props.group;

console.log (group) дает мне это:

{passwordenabled: true, _id: "5b04a644533447437c4bb4a7", groupname: "ddsafdsfadfas", email: "2@2.com", password: "$2a$10$qXZsWtyhySGv4hrSCIXq2.0Yl9kjK8qYLUPkNPo1LfjZujbNeED.W", …}

Однако, когда я пытаюсь получить доступ к свойству groupname, это дает мне эту ошибку:

TypeError: Cannot read property 'groupname' of undefined

Объект в console.log содержит имя группы свойств: "ddsafdsfadfas" и typeof раскрывает объект, но я все еще не могу получить доступ к свойству напрямую.Я не понимаю, почему я получаю эту ошибку?

Редактировать: полный код mapStateToProps -

const mapStateToProps = state => ({
  group: state.group,
  errors: state.errors
});

export default connect(mapStateToProps, { getGroup })(Dashboard);

1 Ответ

0 голосов
/ 23 мая 2018

Возможно, проблема в асинхронном объекте.Вы пытаетесь получить доступ к значению объекта, который подается асинхронной операцией.Попробуй немного проверить и посмотри.Попробуйте

const { group } = this.props.group;
if(group) {
  console.log('The groupname is', group.groupname);
}

Ваша консоль когда-нибудь исполнялась?

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