I define a list (useState ([])). I want to fill a list as data comes to index 0 of this list first. For example, a value comes every second and writes it on the list. then I want to press the button, create a new lite for the first index of the list and start filling it. How can I do? EX:
const [list, setList] = useState([]); list =[ [1,2,3], //buttonClick [4,5], //buttonClick [6,7,8] ]
Advertisement
Answer
You can use this as an example…
import { useState, useEffect } from "react"; export default function App() { const [list, setList] = useState([1]); useEffect(() => { // list[list.length - 1] Brings the last element from the array // list[list.length - 1] + 1 Increments by one to the last element // [...list, list[list.length - 1] + 1] Append the last element to the list // list.push(list[list.length - 1] + 1) will have the same effect setInterval(() => setList(list => [...list, list[list.length - 1] + 1]), 1000); // This will run every second }, []); // Resetting the list to an array of size 1 with the last element + 1 const createNewList = () => setList(list => [list[list.length - 1] + 1]); return <div className="App"> {list.map(item => item).join(", ")} <button onClick={createNewList}>New List</button> </div>; }