Tengo un sistema de votación simple (Sí o No) si hace clic en Sí, el estado debe estar arriba y si hace clic en No, el estado debe estar inactivo, necesito configurar el almacenamiento local para evitar que el usuario siga votando , ¿tengo que hacer esto en useEffect o solo en el método voteHandler , hay una alternativa de almacenamiento local?
Aquí está mi código:
import React, { useState, useContext } from 'react'; import {AnswerContext} from './AnswerWrapper'; const AnswerItem = (props) => { let indexPlus; const indexCount = (index) => { indexPlus = index; return indexPlus; } const { active, setActive } = useContext(AnswerContext) const [vote, setVote] = useState(); const voteHandler = (e, index, value) => { e.preventDefault(); localStorage.setItem('myVoteInLocalStorage', value); setActive(index); setVote(value) // I am sending this to a parent component props.onVote ({ vote : value, answerID : index }) } return ( <div> <button onClick={(e) => voteHandler(e, props.index, 'up')}>Yes <span>({props.ups !== null ? props.ups : 0 })</span></button> <button onClick={(e) => voteHandler(e, props.index, 'down')}>No <span>({props.downs !== null ? props.downs : 0 })</span></button> </div> ) } export default AnswerItem;