Как создать компонент того же типа при нажатии на компонент в react?

#reactjs

#reactjs

Вопрос:

Я хочу создать несколько дочерних полигонов при нажатии на полигон. Как я могу это сделать? Первые полигоны, созданные при загрузке карты. в методе clickHandler извлекаются координаты некоторых полигонов с сервера.

     clickHandler(id) {
        let areaType = 'city' // every clicked gonna change, assigned 'city for now
        axios.get(`http://127.0.0.1:8000/service/${areaType}/${id}/`)
        .then(res => {
            this.setState({areas: res.data})
            this.render() 
            
        })

    }


    render(){
        return (
            this.props.areas.map(area => 
                <Polygon
                    id={area.name}
                    key={area.id}
                    paths={area.coordinates}
                    name={area.name}
                    strokeColor={'#000000'}
                    strokeOpacity= {1}
                    strokeWeight={1.2}
                    fillOpacity={0.3}
                    fillColor= {'#00ff00'}
                    onClick={() => this.clickHandler(area.id)} 
                    areas={this.state.areas} //send new areas to create children polygons
                   
                >
                                 
                </Polygon>
            )
        )   
    }  

Ответ №1:

Попробуйте использовать SVG напрямую. Перепишите вопрос.

Комментарии:

1. codesandbox.io/s/competent-dubinsky-1dpdj?file=/src/components/… вот весь код.