[英]useCallback not changing variable value
I am using ReactJS along side Foxglove Studio to create a custom panel with a slider on it.我在 Foxglove Studio 旁边使用 ReactJS 创建一个带有 slider 的自定义面板。 I have created the slider, but when I attach a callback to the
onChange
element of the slider the slider remains static and doesn't allow me to move it我已经创建了 slider,但是当我将回调附加到 slider 的
onChange
元素时,slider 仍然是 ZA81259CEF48E959C294ZDF1 并且不允许我移动到
let LEDValue: number | number[] = 0;
const sliderOnChange = useCallback(
(_event: Event, value: number | number[]) => {
if (value !== LEDValue) {
value = LEDValue;
}
},
[LEDValue],
);
const min = 0;
const max = 254;
const step = 1;
const marks = [
{ value: min, label: String(min) },
{ value: max, label: String(max) },
];
return (
<div style={{ padding: "1rem" }}>
<h2>{LEDValue}</h2>
<Slider
min={min}
max={max}
step={step}
marks={marks}
value={typeof LEDValue === "number" ? LEDValue : 0}
onChange={sliderOnChange}
/>
</div>
);
No errors when I build it, I just can't drag the slider and values don't update.构建它时没有错误,我只是无法拖动 slider 并且值不会更新。 Am I missing something?
我错过了什么吗?
u need useState to store Led value also the logic on function sliderOnChange
seem not right...您需要 useState 来存储 Led 值以及 function
sliderOnChange
上的逻辑似乎不正确......
Maybe u can do like this也许你可以这样做
const sliderOnChange = useCallback(
(_event: Event, value: number | number[]) => {
LEDValue = value
// If using useState
setLedValue(value)
},
[LEDValue],
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.