------------------------ Реагировать на родительский функциональный компонент ------------------- -----
<div style={{ width: "100%", overflow: "scroll", border: "1px solid #ecf0f1", margin: "10px 0px 0px 10px" }}>
<svg id='wall' ref={wall} width="5000px" height="500px">
<PanelSvgs initColor={classes.greywall} selectPanel={selectPanel} />
</svg>
</div>
------------------------ Реагировать дочерний функциональный компонент -------- ----------------
function PanelSvgs(props) {
return (
<Fragment>
<polygon className={props.initColor} onClick={e => props.selectPanel(e)} bool="false" id="_x34_88_x2F_9" points="35.14,70.14 34.94,148.88 113.68,148.88 113.68,73.38"></polygon>
<polygon className={props.initColor} onClick={e => props.selectPanel(e)} bool="false" id="_x34_88_x2F_9" points="35.14,70.14 34.94,148.88 113.68,148.88 113.68,73.38"></polygon>
<rect className={props.initColor} onClick={e => props.selectPanel(e)} bool="false" id="_x36_01_x2F_12" x="34.94" y="148.88" width="78.74" height="78.74" ></rect>
</Fragment>
}
export default PanelSvgs;
Привет всем. Как видно из фрагментов кода выше. У меня есть два реагирующих функциональных компонента: родительский и дочерний.
Я хотел бы передать функции className, onClick и атрибут всем объектам «polygon and rect». Поскольку у меня есть приблизительно 2000 объектов, есть ли способ передать эти атрибуты в упрощенном виде вместо дублирования их на все 2000 объектов ??
В Jquery и Javascript, это было относительно легко.
const panels = document.getElementById('wall').children;
// ADD onclick listener to children objects
for (let p in panels) {
let panel = panels[p];
panel.onclick = () => {
selectPanel(panel);
}
}