簡體   English   中英

如何在按鈕單擊時添加新文本字段並將該輸入字段的 integer 值添加到反應數組中

[英]How to add a new textfield on button click and add integer value of that input field to an array in react

我想在按鈕單擊時添加一個新的輸入字段,並將該輸入字段的 integer 值添加到反應數組中

const [price, setPrice] = useState([])
const [count, setCount] = useState([1])

const addNewTextField = () => setCount(prev => [...prev,1])

const addInputValue= () => {
   setPrice()
   console.log(price)
}

<Button onClick={addNewTextField}>Add TextField</Button >
{
   count.map((item, i) => {
   return (
    <TextField   key={i} value={item.value} id={i}  type='text' />
      )
    })
 } 

<Button onClick={addInputValue}>submit</Button >

第一個輸入值為 100,第二個輸入值為 200,當我添加新輸入字段時,結果應該是這樣的: [100,200]

嘗試如下。 您只能保留price state。

import { useState } from "react";

const App = () => {
  const [price, setPrice] = useState([""]);

  const addNewTextField = () => setPrice((prev) => [...prev, ""]);

  const addInputValue = (i, newValue) => {
    console.log(i, newValue);
    setPrice((prevState) =>
      prevState.map((value, valueIndex) =>
        valueIndex === i ? newValue : value
      )
    );
  };

  console.log(price);

  return (
    <>
      <button onClick={addNewTextField}>Add TextField</button>;
      {price.map((item, i) => {
        return (
          <input
            key={i}
            placeholder={`input ${i}`}
            // value={item}
            id={i}
            type="text"
            onChange={(e) => addInputValue(i, e.target.value)}
          />
        );
      })}
      <button onClick={addInputValue}>submit</button>
    </>
  );
};

export default App;

代碼沙箱

const [price, setPrice] = useState([]);
const [count, setCount] = useState([1]);
const [value, setValue] = useState("");

const addNewTextField = () => setCount(prev => [...prev,prev + 1]);

const addInputValue= () => {
   setPrice(price.concat(value));
   console.log(price)
}

<Button onClick={addNewTextField}>Add TextField</Button >
{
   count.map((item, i) => {
   return (
    <TextField   key={i} value={value} id={i}  type='text' onChange={e => setValue(e.target.value)} />
      )
    })
 } 

<Button onClick={addInputValue}>submit</Button >

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM