Ошибка типа: _SchoolProduct__WEBPACK_ИМПОРТИРОВАЛ_MODULE_2___по умолчанию.a.карта не является функцией

#reactjs #typeerror #react-props

#reactjs #ошибка типа #реагировать-реквизит

Вопрос:

Я новичок в ReactJS и пытаюсь выполнить задание с канала YouTube. Я создал массив «products» в «SchoolProduct.js «затем, используя props, я передал значение в Product.js. Теперь в App.js Я использовал функцию map для получения данных (возможно, я что-то неправильно понимаю в реквизитах или функции map)

Вот SchoolProduct.js:

  const products = [
 {
  id: "1",
  name: "pencil",
  price: 1,
  description: "this is pencil"
 },
 {
  id: "2",
  name: "rubber",
  price: 10,
  description: "this is rubber"
 }

]
  

это мой Product.js

 import React from "react"
function Product(props)
{
 return
 (
    <div>
     <h2>{props.product.name}</h2>
     <p>{props.product.price.toLocaleString("en-US", {style: "currency", 
      currency: "USD"})}
     - {props.product.description}</p>
    </div>
  )

}

export default Product
  

и это мой App.js

 import React, { Component } from 'react';
import Product from "./Product"
import productsData from "./SchoolProduct"


 function App(){

  const productsComponents = productsData.map(item => <Product product= 
   {item}/>)

  return (
   <div>
    {productsComponents}
   </div>
 )
}

export default App;
  

Ошибка заключается в:
Ошибка типа: _SchoolProduct__WEBPACK_ИМПОРТИРОВАЛ_MODULE_2___по умолчанию.a.карта не является функцией

он показывает ошибку в App.js строка № 8, которая является «постоянными компонентами продукта»

Я знаю, что создаю глупую ошибку, но я пытаюсь ее исправить

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

1. Вам нужно экспортировать массив в SchoolProduct, export const products = [

2. @Phix теперь он показывает «Ошибка при попытке импорта: ‘./SchoolProduct’ не содержит экспорта по умолчанию (импортирован как ‘productsData’)».

Ответ №1:

Я должен экспортировать свою ошибку способом по умолчанию,

 const products = [
 {
  id: "1",
  name: "pencil",
  price: 1,
  description: "this is pencil"
 },
 {
  id: "2",
  name: "rubber",
  price: 10,
  description: "this is rubber"
 }
]
export default products
  

Ответ №2:

 export default [
    {
        id: "1",
        name: "Pencil",
        price: 1,
        description: "Perfect for those who can't remember things! 5/5 Highly recommend."
    },
    {
        id: "2",
        name: "Housing",
        price: 0,
        description: "Housing provided for out-of-state students or those who can't commute"
    },
    {
        id: "3",
        name: "Computer Rental",
        price: 300,
        description: "Don't have a computer? No problem!"
    },
    {
        id: "4",
        name: "Coffee",
        price: 2,
        description: "Wake up!"
    },
    {
        id: "5",
        name: "Snacks",
        price: 0,
        description: "Free snacks!"
    },
    {
        id: "6",
        name: "Rubber Duckies",
        price: 3.50,
        description: "To help you solve your hardest coding problems."
    },
    {
        id: "7",
        name: "Fidget Spinner",
        price: 21.99,
        description: "Because we like to pretend we're in high school."
    },
    {
        id: "8",
        name: "Sticker Set",
        price: 14.99,
        description: "To prove to other devs you know a lot."
    }
]