Ошибка типа: невозможно прочитать свойство 'contacts' из неопределенного - PullRequest
0 голосов
/ 04 апреля 2020

отображает только неопределенные контакты. у меня есть index.s, который является основным редуктором, который указывает на контакт редуктора. js, и я соединяю провайдера с моим компонентом Contact. js

Contacts. js enter image description here index. js Мейн-редуктор enter image description here contactReducer. js редуктор контактов

enter image description here

1 Ответ

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

Моя первая мысль: state.myContact в mapStateToProps не определено. Убедитесь, что вы создаете свой магазин и передаете его своему провайдеру.

Как-то так из документов: https://redux.js.org/recipes/configuring-your-store/#configuring -your-store

import React from 'react'
import { render } from 'react-dom'
import { Provider } from 'react-redux'
import { createStore } from 'redux'
import rootReducer from './reducers' <-- this is your main reducer index.js, where you export the combineReducers
import App from './components/App'

const store = createStore(rootReducer) <--- make sure you have this line

render(
  <Provider store={store}>             <-- and this line
    <App />
  </Provider>,
  document.getElementById('root')
)

Второе место, где вы пытаетесь использовать контакты, находится в строка

const { contacts } = this.props

Если this.props не определено, вы не можете извлечь contacts из него.

В Контактах. js вам нужен конструктор для убедитесь, что реквизит определен. Добавьте конструктор, который вызывает super(props).

constructor(props) {
  super(props);
}

Я нашел информацию здесь: https://reactjs.org/docs/react-component.html#constructor

Конструктор для компонента React называется прежде чем он установлен. При реализации конструктора для подкласса React.Component вы должны вызывать super (props) перед любым другим оператором. В противном случае this.props будет неопределенным в конструкторе, что может привести к ошибкам.

Это может быть применимо только в том случае, если вы пытаетесь использовать props в конструкторе, поэтому это может быть не проблема но стоит выстрел.

...