Моя первая мысль: 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 в конструкторе, поэтому это может быть не проблема но стоит выстрел.