Update StarRating.md
This commit is contained in:
@ -3,7 +3,7 @@
|
|||||||
Renders a star rating component.
|
Renders a star rating component.
|
||||||
|
|
||||||
* Define a component, called `Star` that will render each individual star with the appropriate appearance, based on the parent component's state.
|
* Define a component, called `Star` that will render each individual star with the appropriate appearance, based on the parent component's state.
|
||||||
* In the `StarRating` component, use the `React.setState()` hook to define the `rating` and `selection` state variables with the initial values of `props.rating` (or `0` if invalid or not supplied) and `0`.
|
* In the `StarRating` component, use the `React.useState()` hook to define the `rating` and `selection` state variables with the initial values of `props.rating` (or `0` if invalid or not supplied) and `0`.
|
||||||
* Create a method, `hoverOver`, that updates `selected` and `rating` according to the provided `event`.
|
* Create a method, `hoverOver`, that updates `selected` and `rating` according to the provided `event`.
|
||||||
* Create a `<div>` to wrap the `<Star>` components, which are created using `Array.prototype.map` on an array of 5 elements, created using `Array.from`, and handle the `onMouseLeave` event to set `selection` to `0`, the `onClick` event to set the `rating` and the `onMouseOver` event to set `selection` to the `star-id` attribute of the `event.target` respectively.
|
* Create a `<div>` to wrap the `<Star>` components, which are created using `Array.prototype.map` on an array of 5 elements, created using `Array.from`, and handle the `onMouseLeave` event to set `selection` to `0`, the `onClick` event to set the `rating` and the `onMouseOver` event to set `selection` to the `star-id` attribute of the `event.target` respectively.
|
||||||
* Finally, pass the appropriate values to each `<Star>` component (`starId` and `marked`).
|
* Finally, pass the appropriate values to each `<Star>` component (`starId` and `marked`).
|
||||||
@ -29,7 +29,7 @@ function StarRating(props) {
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
onMouseOut={() => hoverOver(null)}
|
onMouseOut={() => hoverOver(null)}
|
||||||
onClick={() => setRating(event.target.getAttribute('star-id') || this.state.rating)}
|
onClick={(event) => setRating(event.target.getAttribute('star-id') || this.state.rating)}
|
||||||
onMouseOver={hoverOver}
|
onMouseOver={hoverOver}
|
||||||
>
|
>
|
||||||
{Array.from({ length: 5 }, (v, i) => (
|
{Array.from({ length: 5 }, (v, i) => (
|
||||||
|
|||||||
Reference in New Issue
Block a user