Невозможно прочитать свойство 'prop' неопределенного реактива-редуктора - PullRequest
0 голосов
/ 21 января 2019

У меня ошибка со вторым тестом.Что с ними не так?Я делаю все по документации, но у меня есть ошибка: «Не могу прочитать свойство« prop »из undefined».Я пытался с помощью провайдера, но это мне не помогает, может я что-то не так делаю?

Можно ли как-то отладить?

BoardContainer.test.js

import React from 'react'
import configureStore from 'redux-mock-store'

import ConnectedBoard,{Board} from './BoardContainer'

import { shallow, configure,mount} from 'enzyme'
import Adapter from 'enzyme-adapter-react-16';
import {Provider} from 'react-redux'
import PropTypes from 'prop-types';



configure({adapter: new Adapter()});

const boards = [{
  id: 1,
  title: 'first_board'
}, {
  id: 2,
  title: 'second_board',
}];

describe('>>>H O M E --- REACT-REDUX (Shallow + passing the {store} directly)',()=> {
  const initialState = {boards: boards};
  const mockStore = configureStore();
  let store, wrapper;

  beforeEach(()=>{
    store = mockStore(initialState);
    wrapper = shallow( <Provider store={store}><ConnectedBoard /></Provider> );

  })


  it('+++ render the connected(SMART) component', () => {
    expect(wrapper.length).toEqual(1);
  });

  it('+++ check Prop matches with initialState', () => {
    expect(wrapper.prop('boards')).toEqual(initialState.boards);
  });

})

BoardContainer.js

import React, {Component} from 'react'
import {connect} from 'react-redux'

import {loadBoards} from '../../actions/boardJS'
import Board from '../../components/Board/Board'

export class BoardContainer extends Component {
  getBoards() {
    fetch(process.env.REACT_APP_DEV_API_URL + `todo_lists`)
        .then(res => res.json())
        .then(data => {
          this.props.dispatch(loadBoards(data))
        })
  }

  componentDidMount() {
    this.getBoards()
  }

  render() {
    return <Board/>
  }
}

const mapStateToProps = state => {
  return {
    boards: state.boards
  }
}

export default connect(mapStateToProps)(BoardContainer)

Если кто-то знает решение, было бы неплохо:)

1 Ответ

0 голосов
/ 21 января 2019

Похоже, что вы смотрите на реквизиты компонента провайдера, а не на компонент ConnectedBoard.

Я бы также помнил следующее:

"При вызове на мелкой оболочке, .prop (ключ) будет возвращать значения для реквизита на корневом узле, который отображает компонент, а не сам компонент ".- https://airbnb.io/enzyme/docs/api/ShallowWrapper/prop.html

Можете ли вы немного рассказать, вы говорите, что свойство 'prop' отсутствует, но это будет означать, что оболочке не назначен ShallowWrapper.Что означало бы, что до того, как каждый не выполнил ... Я сомневаюсь, что это так, если тест 1 был успешным.

Была ли ошибка, из-за которой сам реквизит не определен?Когда вы пытаетесь получить доступ к собственности 'доски'

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