Я изучал курс React на Udemy, и в разделе Redux я встретил эту ошибку Uncaught TypeError: Object (...) не является функцией при подключении. Я пытался погуглить, но все равно не нашел решения. Мог ...

1
Duy Long 27 Фев 2021 в 11:04

2 ответа

Лучший ответ

Я изучал тот же курс и столкнулся с той же проблемой. В конце концов, речь шла о версиях библиотек React, Redux и react-redux. Потому что кажется, что курс устарел и использует версию React 16.0.0. Мне помогло и помогло успешно построить мои проекты использование файла package.json из проекта redux--assignment-2-problem (это проект, исходные тексты которого приведены в Разделе 14 курса) Поэтому я скопировал следующий package.json и вставил его в корневую папку проекта:

{
  "name": "react-complete-guide",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.0.0",
    "react-dom": "^16.0.0",
    "react-redux": "^5.0.6",
    "react-scripts": "1.0.13",
    "redux": "^3.7.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

Затем я запустил npm install с этой конфигурацией пакета, и все прошло нормально.

0
Anton Serov 27 Фев 2021 в 19:20

Возможно, вам потребуется позвонить combineReducers перед экспортом в reducer.js

import { combineReducers } from 'redux';
const initialState = {
  counter: 0
};

const reducer = (state = initialState, action) => {
  return state;
};

export default combineReducers({counter: reducer});

counter.js также необходимо будет обновить:

const mapStateToProps = state => {
   return {
       ctr: state.counter.counter
   }
 };

Кроме того, с точки зрения дизайна имеет больше смысла хранить счетчик в вашем редукторе как целое число, а не как объект.

0
greenBox 27 Фев 2021 в 08:19