У меня есть компонент кнопки React с обработчиком onClick и его состоянием, указывающим, был ли он открыт при нажатии. Если я визуализирую два таких компонента в контейнере-оболочке и нажимаю на один из них, обе кнопки обновляют состояние. Как мне обрабатывать состояние, чтобы обновлялась только одна из кнопок без использования идентификаторов?
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>
)
}
Я также попытался изменить логику и поместить состояние в компонент-оболочку, а затем передать обработчик onClick в качестве свойства кнопки, но ситуация такая же. Они оба меняют состояние одновременно, когда щелкают по одному из них.
Я использую React Hooks.