Saya memiliki komponen tombol React dengan pengendali onClick dan statusnya - yang menyatakan apakah komponen tersebut dibuka saat diklik. Jika saya merender dua komponen tersebut dalam wadah pembungkus, dan saya mengklik salah satunya, kedua tombol memperbarui status. Bagaimana cara menangani status, sehingga hanya satu tombol yang diperbarui tanpa menggunakan id?
import React, {useState} from 'react';
const Button = (props) => {
const [open, setOpen] = useState(false);
const text = open ? 'Open' : 'Closed';
const toggleButton = () => { setOpen(!open) };
return (
<button onClick={toggleButton}>{text}</button>
)
}
// parent component
import React from 'react';
import Button from './Button'
const ButtonsWrapper = () => {
return (
<div>
<Button />
<Button />
</div>
)
}
Saya juga mencoba membalikkan logika dan menempatkan status dalam komponen pembungkus, dan kemudian meneruskan handler onClick sebagai props ke sebuah tombol, tetapi situasinya sama. Keduanya mengubah status secara bersamaan ketika salah satunya diklik.
Saya menggunakan React Hooks.