從 'react' 匯入 React, { useEffect, useState }; 從「primereact/slider」導入{ Slider }; 從“primereact/inputtext”導入{InputText}; //一些導入 const Config = () =>; { const [factorvalue, setFactorValue] = useState(1); const [isSliderDragging, setIsSliderDragging] = useState(false); useEffect(() => { 獲取配置(); }, []); const fetchConfig = async () =>; { 嘗試 { // 這用於從後端獲取配置值以在前面設置 const 回應 = 等待 Service.getMaliciousFactorConfig(); 如果(響應){ const maliciousFactorValue = 響應[0].maliciousFactor || 1; setFactorValue(maliciousFactorValue); } } 捕獲(錯誤){ console.log(錯誤.訊息); } }; const handleSliderChange = (事件) =>; { 嘗試{ const newValue = parseInt(event.value, 10); setFactorValue(newValue); 處理提交(新值); }捕獲(錯誤){ 控制台.log(錯誤); } }; const handleSliderDragEnd = (事件) =>; { setIsSliderDragging(假); }; const handleInputChange = (事件) =>; { const newValue = parseInt(event.target.value, 10); if (!isNaN(newValue)) { setFactorValue(newValue); 處理提交(新值); } 別的 { setFactorValue(""); } }; const handleSubmit = async(value) =>; { 嘗試{ if (值 >= 1 && 值 <= 100) { 設定驗證錯誤(“”); 等待 ConfigService.setConfig(值); } }捕獲(錯誤){ 控制台.log(錯誤); } }; 返回 ( {//演示程式碼} <div className="displayFlex"><InputText id="factor" value={factorvalue} onChange={handleInputChange} className="w-full" />>>
P粉2629261952023-07-28 12:07:02
防手震(Debouncing)似乎是適合你的正確解決方案。 . Read more
#有一個React鉤子(hook)可用。 here.