Hice la pregunta el día de hoy, pensando que era un problema que necesitaba que funcionara asíncronamente, me informaron que includes() no necesita una implementación asíncrona y me recomendaron que volviera a preguntar. Así que, aquí vamos,
Estoy usando el método .includes() para verificar si una palabra es válida, verificando la inclusión en una matriz de 12,000 elementos más o menos. El método siempre devuelve falso. He intentado aislar el error sin éxito. ¿Quizás alguien pueda detectar un error tipográfico o error obvio que acabo de pasar por alto? Incluiré las interfaces en la parte inferior en caso de que sean útiles.
//helpers.ts // I have checked to make sure the word is valid, including casing, it doesn't work, even if I pass it a string literal. export function validateGuess(guess: GuessCharacter[]) { let word: string = ''; for (let character of guess) { word += character.value; } return allWords.includes(word); }se llama en mi reductor
//gameStateReducer.ts ... case ActionKind.Enter: { if (guesses[guessCount][4].value === ' ') { console.log('Not enough letters'); return gameState; } if (!validateGuess(guesses[guessCount])) { console.log('Not in word list'); return gameState; } //continues process and returns updated state ... }que es llamado por el controlador de eventos
//index.ts, modified, I actually pass a whole object but it's a little verbose for the post/issue function handleEnterPress() { dispatch(keyAction.Enter); }cuál es la devolución de llamada en este componente
//Keyboard.tsx <button className="enter-button" onClick={handleEnterPress}> ENTER </button> interface GuessCharacter { value: string; place: number; //zero-indexed correctValue: boolean; correctPlace: boolean; submitted: boolean; } interface GameState { solution: string; guesses: GuessCharacter[][]; guessCount: number; //zero-indexed characterBank: KeyboardCharacter[]; }Gracias, mis disculpas si hay una suposición que no expuse, he vuelto a leer la publicación y espero que mi pregunta sea buena.