Вы должны передать компонент функции, возвращаемой соединением. Вместо этого получили неопределенные
Приведенный ниже код
Ошибка при сборе: вы должны передать компонент функции, возвращаемой соединением. Вместо этого получили неопределенные
List.js
import React from 'react';
import { connect, bindActionCreators } from 'react-redux';
import PostList from '../components/PostList'; // Component I wish to wrap with actions and state
import postList from '../Actions/PostList' //Action Creator defined by me
const mapStateToProps = (state, ownProps) => {
return state.postsList
}
const mapDispatchToProps = (dispatch) => {
return bindActionCreators({"postsList":postList},dispatch)
}
export default connect(mapStateToProps, mapDispatchToProps)(PostList);
PostList.js
import React from 'react'
export const PostList = (props) => {
return <div>List</div>
}
Пожалуйста, помогите мне с решением?
Ответы
Ответ 1
Вы import PostList from '../components/PostList';
поэтому вам нужно использовать export default
в вашем файле PostList.js.
В противном случае вам нужно import { PostList } from '../components/PostList';
,
Кому интересно, вот хорошая статья о синтаксисе импорта/экспорта es6: http://www.2ality.com/2014/09/es6-modules-final.html
Ответ 2
Не относится конкретно к спрашивающему, но если вы сталкиваетесь с этой ошибкой, стоит проверить правильность синтаксиса connect():
const PreloadConnect = connect(mapStateToProps, {})(Preload);
export default PreloadConnect;
Обратите внимание, что Preload, передается как параметр IIFE.
Ответ 3
Более подробную информацию можно найти здесь here.
Может быть три причины, которые кратко изложены следующим образом:
-
Круговые зависимости между компонентами
- Неправильное использование
export
и export default
затем неправильно импортировано
- Неправильное использование функции подключения, неверные параметры
В моем случае это были циклические зависимости, и циркулярный-зависимый плагин помог мне это исправить.
Ответ 4
В моем случае это был сервер Expo, который иногда не ловит файлы файлов в Windows (возможно), и он видел старую версию компонента, который я пытался подключить (у меня там еще не было экспорта, вероятно). Повторное сохранение моего компонента, не затрагивая ничего, решило проблему.
Перезапуск сервера Expo с очищенным кешем, вероятно, также поможет.