亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Highcharts-react 在初始頁面加載時不呈現

Highcharts-react 在初始頁面加載時不呈現

手掌心 2022-01-13 16:52:50
我有一個簡單的 React 組件,它應該使用 highcharts-react 庫呈現兩個 Highcharts。圖表的數據來自父組件的狀態,并作為道具傳遞給該組件。當頁面加載時,餅圖是空的(例如,只有一個沒有系列的空圓圈)。如果我使用 React 元素檢查器檢查 HighchartsReact 元素,我可以看到正確的數據在 options 屬性中。此外,如果我手動更改檢查器中的任何數據,圖表會突然出現。我的猜測是它與圖表沒有正確更新有關,但我無法準確確定我做錯了什么。const sharedPlotOptions = {    chart: {        plotBackgroundColor: null,        plotBorderWidth: null,        plotShadow: false,        type: 'pie'    },    title: null,    tooltip: {        pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'    },    plotOptions: {        pie: {            allowPointSelect: true,            cursor: 'pointer',            dataLabels: {                enabled: true,                format: '<b>{point.name}</b>: {point.percentage:.1f} %'            }        }    },    series: [{        name: 'Countries',        colorByPoint: true,        data: []    }]}export function CountryPopulationPlot(props) {  let adultData = props.countries.map(country => ({    name: country.name,    y: country.population //TODO: use adult only data  }))  let allData = props.countries.map(country => ({    name: country.name,    y: country.population  }))  let adultPlotOptions = sharedPlotOptions  adultPlotOptions.series[0].data = adultData  let allPlotOptions = sharedPlotOptions  allPlotOptions.series[0].data = allData  return(    <div>      <HighchartsReact        highcharts={Highcharts}        options={adultPlotOptions}        oneToOne={true}      />      <HighchartsReact        highcharts={Highcharts}        options={allPlotOptions}      />    </div>  );}編輯: oneToOne 道具是修復錯誤的嘗試,它似乎沒有任何效果。
查看完整描述

2 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

在 Highcharts 中用于繪制餅圖,adultData 和 allData 應采用如下格式:


[

  {

    name: "USA",

    y: 1000

  },

  {

    name: "Italy",

    y: 500

  }

]

(或者)


 [

  {

    "name": "USA",

    "y": 1000

  },

  {

    "name": "Italy",

    "y": 500

  }

]

請在您的輸入數據中仔細檢查。我在 GitHub 上寫了一篇博客文章和一個工作應用程序,其中包含一個簡單的 Highcharts 餅圖示例。請查看: http: //softwaredevelopercentral.blogspot.com/2020/03/react-highcharts-and-spring-boot.html


查看完整回答
反對 回復 2022-01-13
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

我遇到了同樣的問題,并找到了一個粗略的解決方法。就像你說的,這發生在初始組件渲染上。因此通過更新狀態觸發重新渲染可以解決問題。


const [shouldRender, doRender] = useState(true)

useEffect(() => {

   if (shouldRender) {  // this stops the cycle after the first re-render

      doRender(!shouldRender)

}

想補充一下,以防有人有更好的解決方案,我正在使用相同的道具渲染多個圖表,只有餅圖是一個問題。


查看完整回答
反對 回復 2022-01-13
  • 2 回答
  • 0 關注
  • 317 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號