gpt4 book ai didi

javascript - 找不到 Amchart HTML 容器( react )

转载 作者:行者123 更新时间:2023-12-03 07:18:41 25 4
gpt4 key购买 nike

编辑 1(初始):似乎 setState() 回调没有按我预期的方式工作。例如:

this.state = {table: true}
this.setState({table: false}, ()=> console.log(this.state.table));

将注销“true”,而我预计它会注销 false。

编辑 2:我认为我处理下拉请求的方式有问题,这可能会导致我的大部分问题。所以我将其标记为已解决,因为 Dileep 的解决方案应该有效。我将在几个小时内更新我的结果。

编辑 3(最终版):我使用的 switch() 语句以某种方式触发了多个案例并重置了我的状态。

我想我明白问题是什么,但是,我不完全确定如何解决它。

我想在 Amchart 的 create("elementID", chartType) 函数访问元素之前有条件地呈现它。我希望通过调用以下函数在下拉菜单上呈现:

loadBarChart() {
this.setState({ piechart: false, table: false, barchart: true });
var chart = am4core.create("barChartDiv", am4charts.XYChart);
chart.data = this.state.data;

let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());
categoryAxis.dataFields.category = "schoolname";
categoryAxis.title.text = "Schools";

let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
valueAxis.title.text = "Number of Students";
}

barChartDiv 显示如下:

 {this.state.barchart && (
<section>
<h1 style={{ textAlign: "center" }}>School Data</h1>
<div id="barChartDiv" style={{ width: "100%", height: "500px" }} />
</section>
)}

当我选择下拉时,我被告知条形图是假的,然后在出现以下错误后为真:

Instance.js:128 Uncaught Error: html container not found

因为 setState() 通常不会立即更新。我尝试通过在 setState() 回调函数中包含 loadBarChart() 代码来解决这个问题,但我得到了与以前相同的错误。所以我几乎可以肯定正在发生的事情是 am4core.create() 在呈现该元素之前正在寻找 ID 为“barChartDiv”的元素,因此我得到一个 html container not found 错误。

除了使用 css 之外,处理这个问题的最佳方法是什么?

最佳答案

我在纯 HTML/JS 中遇到了这个错误。

在出错时,我添加了 <script>我的 <div id="chartdiv"></div> 之前的部分

解决方案 是放置 <script> <div id="chartdiv"></div> 之后的部分

写在这里是为了帮助任何可能自己遇到此问题的人。

关于javascript - 找不到 Amchart HTML 容器( react ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com