在 React 页面上动态添加元素

Add elements dynamically on a page in React

我必须在一列中打印 10 个元素,例如 1,2,3 ...,超时时间为 1 秒。但是在我的代码中我不知道如何循环打印消息。我尝试使用 innerHTML,但我认为这不是正确的做法。

import { useState } from 'react'

export default function Timeout() {
  const [message, setMessage] = useState(1)

  while (message <= 10) {
    setTimeout(() => {
      setMessage(message)
    }, 1000)
    message++
  }

  return <div>{message}</div>
}

试试这个:

import { useState } from 'react'

export default function Timeout() {
  const [message, setMessage] = useState([1])

  setTimeout(() => {
    message.length <= 10 && setMessage((perv)=>[...perv,perv.length + 1]);
  }, 1000)

  return <div>{message.map((item)=>item}</div>
}

试试这个:

import {useState } from "react";

export default function Timeout() {
 const [message, setMessage] = useState([1]);
  const Markup = (
   <ul>
    {message?.map((n) => (
    <li>{n}</li>
    ))}
   </ul>
  );
  setTimeout(() => {
  if (message.length <= 9) {
    setMessage([...message, message[message.length - 1] + 1]);
  }
 }, 1000);

 return <div>{Markup}</div>;
}