マウスが離れる前にすべての値をコミットするのではなく、マウスが離れたときにスライダーの値をコミットするにはどうすればよいですか?
P粉129731808
P粉129731808 2023-07-27 15:35:18
0
1
469

入力フィールドとスライダーがあります。スライダーの範囲は 1 ~ 100 です。トグル スイッチとドロップダウン メニューもあるので、スライダーを含む送信ボタンを使用する代わりに、各フィールドに onChange イベントを使用しています。

しかし、問題が発生しました。スライダーを 1 から 50 まで変更しようとすると、1 から 50 までのすべての値が onChange イベントで送信されます。 onSlideEndイベントを使用してみましたが、古い値が表示されます(例:1から50を選択すると1が表示され、50から20を選択すると50が表示されます)。

1 から 50 に変更する際に、handleSubmit で 50 のみがバックエンドに送信されるようにしたいです。

このコードを試してみましたが、うまくいきませんでした。解決してください。


import React, { useEffect, useState } from 'react'; 「primereact/slider」から { Slider } をインポートします。 import {InputText} から "primereact/inputtext"; //一部のインポート const 構成 = () => { const [factorvalue, setFactorValue] = useState(1); const [isSliderDragging, setIsSliderDragging] = useState(false); useEffect(() => { fetchConfig(); }、[]); const fetchConfig = async () => { 試す { // これはバックエンドから設定値を取得してフロントに設定するために使用されます const 応答 = await Service.getMaliciousFactorConfig(); if (応答) { const maliciousFactorValue = 応答[0].maliciousFactor || 1; setFactorValue(maliciousFactorValue); } } キャッチ (エラー) { コンソール.ログ(エラー.メッセージ); } }; const handleSliderChange = (イベント) => { 試す{ const newValue = parseInt(event.value, 10); setFactorValue(newValue); handleSubmit(newValue); }キャッチ(エラー){ コンソール.ログ(エラー); } }; const handleSliderDragEnd = (イベント) => { setIsSliderDragging(false); }; const handleInputChange = (イベント) => { const newValue = parseInt(event.target.value, 10); if (!isNaN(newValue)) { setFactorValue(newValue); handleSubmit(newValue); } それ以外 { setFactorValue(""); } }; const handleSubmit = async(value) => { 試す{ if (値 >= 1 && 値 <= 100) { setValidationError(""); await ConfigService.setConfig(value); } }キャッチ(エラー){ コンソール.ログ(エラー); } }; 戻る ( {//デモコード} 
{//コード} ); }; デフォルトの構成をエクスポート;


P粉129731808
P粉129731808

全員に返信 (1)
P粉262926195

デバウンスはあなたにとって正しい解決策のようです。 。 ###続きを読む######React フックが利用可能です。 ###ここ###。###

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!