Tengo curiosidad acerca de guardar y recuperar de localStorage en Wordle y cómo se implementa en React .
Estoy creando un clon de Wordle como proyecto, pero tengo un obstáculo en este momento. La mayoría de los recursos que encontré no explicarían cómo funciona. Si alguien alguna vez tiene éxito con esto, por favor ayúdame. Muchas gracias :)
En mi caso, tengo un archivo words.json que contiene todas las palabras.
localStorage y restablecerlos después de 10 minutos.correctWord como una cadena vacía para el estado inicial, si escribo "" en el tablero, el juego se romperá porque coincide con la condición ganadora. ( currentWord === correctWord )0 y luego reinicia el proceso de cuenta regresiva nuevamente.timeLeft hasta que la palabra correcta se cambiara a localStorage pero simplemente permanecería en 0 y no haría nada. Si actualizo la página, el temporizador volverá a comenzar desde el principio, no desde el punto en el que debería quedar.localStorage porque copié parte de él. Por favor, siéntase libre de hacerme saber qué puedo cambiar para que se ajuste a mi código.Todo el código está incrustado en este codeandbox a continuación
Puede establecer undefined como el estado inicial de la correctWord . Ahora, dondequiera que se use correctWord, verifique si no está undefined . De no ser así, continúe con el trámite. Puedes usar el ? operador para este caso de uso.
const [correctWord, setCorrectWord] = useState(); const correct = correctWord?.toUpperCase()[letterPosition] === letterAdemás, el temporizador no salta 0, no lo ve impreso en los registros debido a la naturaleza asíncrona de setState ( Leer más ). Esta es la misma razón por la que está viendo que 60 se registra dos veces en la consola al principio.
Para lidiar con esto, el uso puede establecer el valor de newCounter en una variable primero, const newCount = counter-1 , y luego hacer setCounter(newCount) , esto evita que usemos el valor anterior de un estado, accidentalmente.
Además, puedo configurar cosas en el almacenamiento local, sin ningún problema, por ej. localStorage.setItem("timeLeft", counter);
¡Espero que esto ayude!