Показать сообщение отдельно
  #2 (permalink)  
Старый 02.12.2019, 21:05
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

useEffect(() => {
    setState((prevState) => ({
      ...prevState,
      chartPoints: chartPoints
    }))
  }, [])
  
  chartPoints.forEach((d) => {
    d.date = new Date(d.date)
    d.value = Number(d.value)
  })


для реакта эти изменения не доступны,

useEffect(() => {
    setState((prevState) => ({
      ...prevState,
      chartPoints: chartPoints.forEach((d) => {
    d.date = new Date(d.date)
    d.value = Number(d.value)
  })
    }))
  }, [])


хотя бы должно быть так

draw тогда нужно повесить на эффект
React.useEffect(
() => {
draw()
}
,
[draw, state.chartPoints]
)


потому что если изменились state.chartPoints вызваться draw, так же надо draw завернуть в React.useCallback... в общем это подход из серии поменять стиль через document.querySelector )) в реакте...

вообще для библиотек там всяких пишут bindings надо найти "react d3 bindings"..
Ответить с цитированием