Элементы не знают, что состояние App
изменяется при его изменении. Расскажите им об изменениях, используя эффект, подобный следующему:
useEffect(() => {
ReactDOM.render(
<Elements elements={elements} />,
document.getElementById("elements")
);
ReactDOM.render(
<Elements2 elements={elements} />,
document.getElementById("elements2")
);
ReactDOM.render(
<Input setElements={setElements} />,
document.getElementById("inputId")
);
}, [elements, setElement]);
React будет вызывать эффект (и, следовательно, повторно отображать элементы) каждый раз, когда изменяются значения elements
и setElements
. На самом деле, поскольку у вас очень похожий эффект, вам просто нужно добавить elements
в его список зависимостей (массив во втором аргументе).