Ref returns 调整大小时为空
Ref returns null when resize
我正在尝试获取 ref 并想检查它是否有价值。
它第一次有值,但是当我调整图表大小时它就消失了。
我认为这个问题与反应有关,而不是图表库。
有什么想法吗?
https://codesandbox.io/s/billboardjs-resize-onresize-bug-28fvz
const Page1 = props => {
const [isResize, setIsResize] = useState(false);
const chartRef = createRef();
const options = {
onresize(ctx) {
console.log(chartRef.current);
setIsResize(true);
},
onresized(ctx) {
setIsResize(false);
},
data: {
columns: [
["data1", 30, 200, 100, 170, 150, 250],
["data2", 130, 100, 140, 35, 110, 50]
],
types: {
data1: "line",
data2: "area-spline"
},
colors: {
data1: "red",
data2: "green"
}
}
};
return (
<div>
<Chart
className="timelineChart"
options={options}
isResize={isResize}
ref={chartRef}
/>
</div>
);
};
我想这是因为选项对象保留了第一个引用,而 createRef() 总是 return 一个新的引用。
使用 useRef()
代替 createRef()
如果有帮助请告诉我。
我在 JillAndMe 上试过 link 并且有效:https://codesandbox.io/s/billboardjs-resize-onresize-bug-28fvz
我正在尝试获取 ref 并想检查它是否有价值。
它第一次有值,但是当我调整图表大小时它就消失了。
我认为这个问题与反应有关,而不是图表库。
有什么想法吗?
const Page1 = props => {
const [isResize, setIsResize] = useState(false);
const chartRef = createRef();
const options = {
onresize(ctx) {
console.log(chartRef.current);
setIsResize(true);
},
onresized(ctx) {
setIsResize(false);
},
data: {
columns: [
["data1", 30, 200, 100, 170, 150, 250],
["data2", 130, 100, 140, 35, 110, 50]
],
types: {
data1: "line",
data2: "area-spline"
},
colors: {
data1: "red",
data2: "green"
}
}
};
return (
<div>
<Chart
className="timelineChart"
options={options}
isResize={isResize}
ref={chartRef}
/>
</div>
);
};
我想这是因为选项对象保留了第一个引用,而 createRef() 总是 return 一个新的引用。
使用 useRef()
代替 createRef()
如果有帮助请告诉我。
我在 JillAndMe 上试过 link 并且有效:https://codesandbox.io/s/billboardjs-resize-onresize-bug-28fvz