Я запустил проект Reactjs, используя create-react-app
, как и раньше. На этот раз я не могу использовать const/let
в теле класса. Я пытаюсь создать обработчик кликов addToCart
на иконке MdAddShoppingCart
. Если я использую const
или let
, он говорит:
Не удалось скомпилировать ./src/ProductListingPage.js
Строка 8:11: Ошибка синтаксического анализа: неожиданно токен
6 | Класс ProductListingPage расширяет React.Component {7 | 8 | const addToCart = () => {| ^
9 | console.log («В addToCart»)
10 | //store.dispatch ({тип: "ADD_TO_CART"});
11 | }
и если я не использую эти ключевые слова и определяю сигнатуру функции следующим образом:
addToCart = () => {}
Это говорит:
Строка 24:65 : 'addToCart' не определен no-undef
Я не могу получить это поведение. Любая помощь будет оценена. Ниже приведен соответствующий код.
ProductListingPage. js
import React from 'react';
import { connect } from 'react-redux';
import { MdAddShoppingCart } from "react-icons/md";
import { Grid, Row, Col } from 'react-flexbox-grid';
class ProductListingPage extends React.Component {
addToCart = () => {
console.log("In addToCart")
//store.dispatch({ type: "ADD_TO_CART" });
}
render() {
return (
<React.Fragment>
<h3>Product Listing Page</h3>
<ol>
{this.props.products.map((product, index) =>
<Grid fluid>
<Row>
<Col>
<li key={index}>{product}</li>
</Col>
<Col>
<MdAddShoppingCart onClick={addToCart} /> //line 24
</Col>
</Row>
</Grid>
)}
</ol>
</React.Fragment>
);
}
}
function mapStateToProps(state) {
return {
...state,
products: state.products
};
}
export default connect(mapStateToProps)(ProductListingPage);
Package. json
{
"name": "cart-screen",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-flexbox-grid": "^2.1.2",
"react-icons": "^3.8.0",
"react-redux": "^7.1.3",
"react-scripts": "3.3.0",
"reactstrap": "^8.4.0",
"redux": "^4.0.5"
},
"scripts": {
"start": "./node_modules/react-scripts/bin/react-scripts.js start",
"start:prod": "pushstate-server build",
"build": "./node_modules/react-scripts/bin/react-scripts.js build",
"test": "./node_modules/react-scripts/bin/react-scripts.js test --env=jsdom",
"eject": "./node_modules/react-scripts/bin/react-scripts.js eject",
"server": "cd client/api && pm2 start server.js --watch",
"proxy": "http://128.199.139.144:3000"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}