영어 단어 외울 때 쓸려고 간단한 프로젝트를 진행중입니다.
알고리즘은
- 영어 단어를 input으로 하나하나 받아서 배열을 만든다.
- 다 받았다면 start를 눌러서 시작.
- 시작하면 영어 단어가 배열에 하나하나 나옴.
- 단어 나오면 3초간 떠 있다가 3초 지나면 5초간 아무 것도 안뜸.
- 5초가 지나면 다음 단어가 나옴.
이렇게 됩니다.
아래에 코드 참조해주세요.
지금 문제가 단어를 받고 start를 누르는 것 까지는 구현했는데 그 다음에 하나하나 찍을 때 딜레이를 어떻게 줘야 할 지 막막합니다.
코드는 create react-app 하고 약간만 다른거 약간만 수정한 app.js입니다. 코드 복붙해서 app.js에 복붙하면 실행 될거에요.
import React, { useState } from 'react';
import './App.css';
const App = () => {
const [input, setInput] = useState('');
const [wordList, setWordList] = useState([]);
const [clicked, setClicked] = useState(false);
const [result, setResult] = useState('');
const start = () => {};
if (!clicked) {
return (
<div>
<form
onSubmit={(e) => {
e.preventDefault();
setWordList((i) => i.concat(input));
setInput('');
}}
>
<input
placeholder="put words here."
value={input}
onChange={(e) => {
setInput(e.target.value);
}}
/>
<button type="submit">add</button>
</form>
<button
onClick={() => {
setClicked(true);
start();
}}
>
start
</button>
<div
style={{
display: 'flex',
}}
>
{wordList.map((v, i) => {
return (
<h3 key={i + 1} style={{ marginRight: '10px' }}>
{v}
</h3>
);
})}
</div>
</div>
);
}
return <h1>{result}</h1>;
};
export default App;