My problem is kind of simple. I'm trying to access this.props.deviceType in order to use it in react-multi-carousel props, the problem is that I get a TypeError: Cannot read properties of undefined (reading 'props') and I don't know how to fix that.
Here is my code
import React, { useState } from "react";
import { Link } from "react-router-dom";
import PastEventCard from "./PastEventCard";
import Carousel from "react-multi-carousel";
import "react-multi-carousel/lib/styles.css";
function PastEventSection(props) {
const responsive = {
return (
<Carousel
autoPlay={this.props.deviceType !== "mobile" ? true : false}
centerMode={this.props.deviceType !== "mobile" ? true : false}
removeArrowOnDeviceType={["tablet", "mobile"]}
deviceType={this.props.deviceType}
>
<PastEventCard title="" description="" imgURL="" />
<PastEventCard title="" description="" imgURL="" />
<PastEventCard title="" description="" imgURL="" />
</Carousel>
);
}
export default PastEventSection;
CodePudding user response:
try this:
import React, { useState } from "react";
import { Link } from "react-router-dom";
import Carousel from "react-multi-carousel";
import PastEventCard from "./PastEventCard";
import "react-multi-carousel/lib/styles.css";
function PastEventSection({ deviceType }) {
const responsive = { // what is it?
return (
<Carousel
autoPlay={deviceType !== "mobile"}
centerMode={deviceType !== "mobile"}
removeArrowOnDeviceType={["tablet", "mobile"]}
deviceType={deviceType}
>
<PastEventCard title="" description="" imgURL="" />
<PastEventCard title="" description="" imgURL="" />
<PastEventCard title="" description="" imgURL="" />
</Carousel>
);
};
export default PastEventSection;
CodePudding user response:
Your component is a functional component. you don't access to props using this key
you just access to it as any other function argument simply props.anything.
that's why you don't have the this key and it's undefined.
In Class based component we access props using this key because props is a property of the Component class
