第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React 只觸發(fā)數(shù)組中的一個元素

React 只觸發(fā)數(shù)組中的一個元素

收到一只叮咚 2023-05-19 14:22:48
我正在制作一個像 youtube 上的評論系統(tǒng)。在我的實現(xiàn)中,當我點擊修改時,所有評論現(xiàn)在都是輸入,但只會修改所選輸入的值。如何只觸發(fā)我點擊的元素。如您所見,它會觸發(fā)所有數(shù)組元素function App() {  const [open, setOpen] = useState(false);  return (    <div className="container mt-5">      <MDBRow>        {data &&          data.map((item) => (            <MDBCol md="7" lg="7" key={item.id} className="mb-4">              {!open && (                <>                  <div className="font-weight-bolder float-left pr-2">                    {item.name}                  </div>                  <div className="float-right pr-2">                    <button                      onClick={() => {                        setOpen(true);                      }}                    >                      Modifier                    </button>                  </div>                </>              )}              {open && (                <UpdateData                  id={item.id}                  name={item.name}                  onAbort={() => setOpen(false)}                  submit={() => setOpen(false)}                />              )}            </MDBCol>          ))}      </MDBRow>    </div>  );}export const UpdateData = ({ name, id, onAbort, submit }) => {  const formik = useFormik({    initialValues: {      id: id,      name: name,    },    onSubmit: async (values) => {      console.log(values);      submit();    },  });  return (    <form onSubmit={formik.handleSubmit}>      <MDBInput        value={formik.values.name}        name="name"        onChange={formik.handleChange}      />      <div className="float-right">        <span onClick={onAbort} className="text-capitalize grey-text">          Cancel        </span>        <button type="submit">confirm</button>      </div>    </form>  );};這是 我創(chuàng)建的沙箱
查看完整描述

2 回答

?
大話西游666

TA貢獻1817條經(jīng)驗 獲得超14個贊

要僅觸發(fā)一個要單擊的元素,您必須傳遞索引


? ? function App() {

? ? ? const [open, setOpen] = useState(false);

? ? ? const [selectedRow, setSelectedRow] = useState(undefined);

? ??

? ? ? const onSelectedRow = (index) => {

? ? ? ?setSelectedRow(index);

? ? ? ?setOpen(true);

? ? ?}

? ??

? ? ? return (

? ? ? ? <div className="container mt-5">

? ? ? ? ? <MDBRow>

? ? ? ? ? ? {data &&

// here you will get the index

? ? ? ? ? ? ? data.map((item,index) => (?

? ? ? ? ? ? ? ? <MDBCol md="7" lg="7" key={item.id} className="mb-4">

? ? ? ? ? ? ? ? ? {!open && (

? ? ? ? ? ? ? ? ? ? <>

? ? ? ? ? ? ? ? ? ? ? <div className="font-weight-bolder float-left pr-2">

? ? ? ? ? ? ? ? ? ? ? ? {item.name}

? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? <div className="float-right pr-2">

// Now onClick pass the index of selected row to onSelectedRow


? ? ? ? ? ? ? ? ? ? ? ? <button

? ? ? ? ? ? ? ? ? ? ? ? ? onClick={() =>onSelectedRow(index)}

? ? ? ? ? ? ? ? ? ? ? ? >

? ? ? ? ? ? ? ? ? ? ? ? ? Modifier

? ? ? ? ? ? ? ? ? ? ? ? </button>

? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? </>

? ? ? ? ? ? ? ? ? )}

// here add condition to open selected row

? ? ? ? ? ? ? ? ? { (open === true && selectedRow === index) ? (

? ? ? ? ? ? ? ? ? ? <UpdateData

? ? ? ? ? ? ? ? ? ? ? id={item.id}

? ? ? ? ? ? ? ? ? ? ? name={item.name}

? ? ? ? ? ? ? ? ? ? ? onAbort={() => setOpen(false)}

? ? ? ? ? ? ? ? ? ? ? submit={() => setOpen(false)}

? ? ? ? ? ? ? ? ? ? />

? ? ? ? ? ? ? ? ? ) : null

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? </MDBCol>

? ? ? ? ? ? ? ))}

? ? ? ? ? </MDBRow>

? ? ? ? </div>

? ? ? );

? ? }


查看完整回答
反對 回復(fù) 2023-05-19
?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

而不是false在你的鉤子中有一個默認值,你應(yīng)該為每個元素都有一個唯一的鍵。默認情況下,它適用于所有元素。



查看完整回答
反對 回復(fù) 2023-05-19
  • 2 回答
  • 0 關(guān)注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號