Вот сам компонент, назовем его Component.jsx, покажу важную часть кода
<div>
<form>
<div>
<button>
<img src={buttonUp}/>
</button>
<button>
<img src={buttonDown}>
</button>
<img
src={removeComponent}
onClick={props.removeThisComponent}
/>
А это скажем, App.js
const [components, setComponents] = useState([]);
{components.map((item, index, i) => (
<Component key={index} removeThisComponent={removeComponent} />
))}
Каждый раз, когда я пытаюсь удалить текущий элемент компонента, у меня ничего не получается, я пробовал через фильтр, ничего не работает, но когда пытаюсь получить доступ к тому, что я пытаюсь удалить, у меня пишет что это img, к которому привязан onClick, а еще выходила такая ошибка:
Encountered two children with the same key, `null`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.
У меня у самого нет понимания что я делаю, просто до этого я пользовался mockAPI, а там каждый компонент автоматически становиться уникальным при помощи создания id, который он сам создает, а здесь мне mockAPI не нужен, поэтому в недоумении.
Если я что-то плохо объяснил, спрашивайте, я объясню в деталях.
А вот и сама функция удаления
function removeComponent(item) {
setComponents(components.filter((p) => p !== item));
}
Возможно, дело в том, что я не делаю компоненты уникальными, но я и не знаю как это сделать, я видел кучу гайдов, где люди давали id, но, после map они писали саму верстку, а у меня готовый компонент.