javascript - highcharts-react-react 状态的官方渲染问题
问题描述
我刚刚将 highcharts-react-official (1.1.0) 实现为无状态 React (16.0.0) 组件。
'chartData' 是使用父应用程序的状态呈现的,该状态可以根据报告而改变,但是当我的 HighchartsWrapper 组件正在呈现时,它似乎忽略了对 'chartData' 的更改并且不会呈现正确的(最新)数据。应用作为道具传递的其他配置数据(例如图表类型) 当 I 时console.log(props.chartData)
,我可以看到数据是正确的。未呈现的“chartData”更改通常是图表上系列数发生更改的更改。
我错过了什么吗?提前致谢。
import React from 'react'
import Highcharts from 'highcharts'
import HighchartsReact from 'highcharts-react-official'
const HighchartsWrapper = (props) => {
console.log(props.chartData); // this is always correct
let options = {
title: { text: 'My chart' },
series: props.chartData
}
return(
<HighchartsReact
highcharts={Highcharts}
options={options}
/>
);
}
export default HighchartsWrapper;
解决方案
此问题已由新的包装器版本修复。出现问题是因为包装器中不可能手动设置函数的oneToOne
参数Chart.update()
。现在您可以简单地将oneToOne={true}
as 组件属性设置为。然后它可以正常工作。
现场示例:https ://stackblitz.com/edit/react-yctlyw?file=Chart.js
此致!
推荐阅读
- jquery - 进度条上的返回按钮
- java - Selenium 处理 for 循环中的陈旧元素
- event-handling - 如何根据 Julia 中的事件实现 ODE 解决方案的终止?为什么我会收到 BoundsError?
- c# - _base_ 值上的空对象模式
- vue.js - 使用 Vue Observable 在同一视图上使用 v-dialog 组件两次出现“超出最大调用堆栈大小”错误
- npm - npm 安装不能使用 squid 代理
- c - 宏中的## 运算符如何工作?
- laravel-5.7 - 查询生成器中的 where 条件中的 where 子句,表示未定义的变量
- javascript - Angular js 创建监听器并按条件发送邮件
- django - 在嵌套的 for 循环中过滤(django 模板)