Ошибка типа: не удается прочитать свойство ‘props’ неопределенного значения в ReactJS

#reactjs #redux

#reactjs ( реакция ) #сокращение #reactjs #ошибка redux

Вопрос:

Я пытаюсь создать простое приложение с помощью ReactJS, но я получаю эту ошибку, и я не знаю, почему.

введите описание изображения здесь

Это мой App.js .

 import React from 'react';
import { connect } from 'react-redux';
import Category from './components/Category';
//import News from './components/Noticias';
import './App.css';

function App() {
  const { categories } = this.props;
  return (
    <div className="App">
      <Category categories={categories} />
      {/*<News />*/}
    </div>
  );
}

const mapStateToProps = state => {
  const { Categorias: {data: categories}} = state;

  return {
    categories,
  }
}

const mapDispatchToProps = dispatch => ({})

export default connect(mapStateToProps, mapDispatchToProps)(App);

  

Я работаю под версией 14.4.0 из node.js и это мой package.json для проверки версии react, версии redux и т.д.

 {
  "name": "noticias",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-redux": "^7.2.1",
    "react-scripts": "3.4.3",
    "redux": "^4.0.5",
    "redux-form": "^8.3.6"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

  

Я проверяю, но не нахожу ошибки, вы можете мне помочь?

Комментарии:

1. Вероятно, вы могли бы просто использовать props вместо this.props .

2. Функциональные компоненты не имеют доступа к реквизитам на this . Пожалуйста, начните с основ: reactjs.org/tutorial/tutorial.html#function-components .

3. О, мне пришлось передать props параметр в функцию и удалить this . Спасибо.

Ответ №1:

Вы могли бы написать это,

 function App({ categories }) {
  // const { categories } = this.props;
  return (
    <div className="App">
      <Category categories={categories} />
      {/*<News />*/}
    </div>
  );
}