I was using function instead of class and the code was working up to certain extent, now it is not displaying at all.
In my VehiclesList.js I generate 10 random vehicles, code below:
JavaScript
x
33
33
1
import React from 'react'
2
import {faker} from '@faker-js/faker'
3
import ListGroup from 'react-bootstrap/ListGroup';
4
import Vehicles from './Vehicles';
5
6
class VehicleList extends React.Component {
7
constructor(props){
8
super(props);
9
this.manufacturer = this.faker.vehicle.manufacturer().bind(this)
10
}
11
12
render(){
13
return (
14
<div style={{ display: 'block', width: 400, padding: 30 }}>
15
<ListGroup>
16
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
17
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
18
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
19
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
20
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
21
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
22
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
23
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
24
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
25
<ListGroup.Item>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</ListGroup.Item>
26
</ListGroup>
27
</div>
28
);
29
}
30
}
31
32
export default VehicleList
33
In my vehicle.js I have to show the info of the clicked vehicle, react is not showing anything on the screen and I’m lost at this point.
The code below:
JavaScript
1
43
43
1
import React from 'react';
2
import 'bootstrap/dist/css/bootstrap.min.css';
3
import {Card, Button} from 'react-bootstrap';
4
import VehicleList from './VehicleList';
5
import {faker} from '@faker-js/faker'
6
import ListGroup from 'react-bootstrap/ListGroup';
7
8
class Vehicles extends React.Component{
9
constructor(props){
10
super(props);
11
this.manufacturer = this.faker.vehicle.manufacturer().bind(this)
12
}
13
render(){
14
return(
15
<div>
16
<Card className="text-center">
17
<Card.Body>
18
<Card.Title>No Vehicle Selected</Card.Title>
19
<Card.Text>
20
Click a vehicle to see more details
21
</Card.Text>
22
</Card.Body>
23
</Card>
24
<br></br>
25
<Card style={{ width: '18rem' }}>
26
<Card.Img variant="top" src={`https://via.placeholder.com/180x150?text=${faker.vehicle.manufacturer()}
27
${faker.vehicle.model()}`} />
28
<Card.Body>
29
<Card.Title>{faker.vehicle.manufacturer()} {faker.vehicle.model()}</Card.Title>
30
<Card.Text>
31
This is a wonderful {faker.vehicle.fuel()}-powered {faker.vehicle.color()} {faker.vehicle.type()}.
32
</Card.Text>
33
<Button variant="primary">Buy now!</Button>
34
</Card.Body>
35
</Card>
36
</div>
37
)
38
}
39
}
40
41
42
export default Vehicles
43
I really appreciate any help with this. Thanks!
Advertisement
Answer
Change line in your constructor to this.manufacturer = this.faker.vehicle.manufacturer.bind(this);
Or remove it entirely, you aren’t referencing this.manufacturer
in your code anyways.