(React Hooks)
График рисуется через данные, которые лежат в редаксе, если я удаляю элемент в этих данных через экшн то начинается бесконечная перерисовка, в чем проблема?
const Chart = React.memo((props) => {
const [data, setData] = useState(props.items.map((elem) => {
return elem.weight
}))
const svgRef = useRef()
useEffect(() => {
setData(props.items.map((elem) => {
return elem.weight
}))
const svg = select(svgRef.current)
const xScale = scaleLinear()
.domain([0, data.length - 1])
.range([0, 1240])
const yScale = scaleLinear()
.domain([min(data), max(data)])
.range([280, 0])
const myLine = line()
.x((value, index) => xScale(index))
.y(value => yScale(value))
.curve(curveCardinal)
svg
.selectAll('path')
.data([data])
.join('path')
.attr('d', value => myLine(value))
.attr('fill', 'none')
.attr('stroke', 'lavender')
.attr('stroke-width', '3px')
.attr('width', '100%')
}, [data, props.items])
return (
<div className={s.elem}>
<svg viewBox={'0 -9 1240 300'}
ref={svgRef}></svg>
</div>
)
})