欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

覆蓋li元素的值

劉姿婷2年前7瀏覽0評論

所以我創建了這個代碼,它在提交表單后用輸入值創建li元素。但問題是,當它創建li,并且您再次開始輸入時,它開始覆蓋所有的li元素

import './App.css';

function App() {

  const [form, setForm] = useState("")
  let [tobuy, setTobuy] = useState([])
  const listOfLi = tobuy.map((i) => <li key={i}>{form}</li>);

  function handleSubmit(event) {
    event.preventDefault();
    setTobuy( [...tobuy , form])
    event.target.reset()
  }

  function handleChange(event) {
    setForm(event.target.value)
  }

  return (
    <div className='page'>

      <div className='heading'>
        Shopping List
      </div>

      <div className='buy-box'>

        <div className='to-buy'>Items to buy</div>

        <form className='form' onSubmit={handleSubmit}>
          <input type="text" className='input' required onChange={handleChange}/>
          <button type="button" className='button' onClick={handleSubmit}>Add</button>
        </form>

        <div>
          {listOfLi}
        </div>

      </div>
      

    </div>
    
  );
}

export default App;

您的表單狀態被用于每個li元素的值,每次更改輸入時都會調用setForm。因此,當在輸入中鍵入內容時,form會更新為input元素的當前狀態。

React將在輸入改變時重新呈現組件,因此使用form的當前值重新呈現所有lis。因為這也隨著每個輸入的變化而變化,所以所有的lis都將當前值保存在表單中。

您正在訪問地圖中所需的值。請嘗試使用該值代替當前表單值。