From 420a805f3cb6437bd1508c14add754b627356ff2 Mon Sep 17 00:00:00 2001 From: harukin-OneMix4 Date: Thu, 6 Jul 2023 03:56:41 +0900 Subject: [PATCH] =?UTF-8?q?useEffect=E3=81=AE=E4=B8=A6=E3=81=B3=E6=9B=BF?= =?UTF-8?q?=E3=81=88=E3=81=A8=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE=E3=83=90?= =?UTF-8?q?=E3=82=B0=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/発車時刻表/LED_vidion.js | 54 +++++++++++------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/components/発車時刻表/LED_vidion.js b/components/発車時刻表/LED_vidion.js index 246bd24..ddf4636 100644 --- a/components/発車時刻表/LED_vidion.js +++ b/components/発車時刻表/LED_vidion.js @@ -45,8 +45,8 @@ export default function LED_vision(props) { const { station, navigate, setTrainInfo, EachTrainInfoAsSR, trainDiagram } = props; const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表 - const [currentTrain, setCurrentTrain] = useState(null); //現在在線中の全列車 - const [currentTrainLoading, setCurrentTrainLoading] = useState("loading"); + const [currentTrain, setCurrentTrain] = useState([]); //現在在線中の全列車 { num: 列車番号, delay: 遅延時分(状態), Pos: 位置情報 } + const [currentTrainLoading, setCurrentTrainLoading] = useState("loading"); // success, error, loading const [finalSwitch, setFinalSwitch] = useState(false); const [trainIDSwitch, setTrainIDSwitch] = useState(false); const [trainDescriptionSwitch, setTrainDescriptionSwitch] = useState(false); @@ -66,6 +66,26 @@ export default function LED_vision(props) { setStationDiagram(returnData); }, [trainDiagram, station]); + const [trainTimeAndNumber, setTrainTimeAndNumber] = useState(null); + + useEffect(() => { + //現在の駅に停車する列車から時刻を切り出してLEDベースにフォーマット + if (objectIsEmpty(stationDiagram)) return () => {}; + const getTimeData = getTime(stationDiagram, station); + setTrainTimeAndNumber(getTimeData); + }, [stationDiagram]); + + const [selectedTrain, setSelectedTrain] = useState([]); + useEffect(() => { + if (!trainTimeAndNumber) return () => {}; + if (!currentTrain) return () => {}; + const data = trainTimeAndNumber + .filter((d) => currentTrain.map((m) => m.num).includes(d.train)) + .filter(timeFiltering) + .filter((d) => !!finalSwitch || d.lastStation != "当駅止"); + setSelectedTrain(data); + }, [trainTimeAndNumber, currentTrain, finalSwitch]); + const getCurrentTrain = () => fetch( "https://train.jr-shikoku.co.jp/g?arg1=train&arg2=train", @@ -120,15 +140,6 @@ export default function LED_vision(props) { }); }; - const [trainTimeAndNumber, setTrainTimeAndNumber] = useState(null); - - useEffect(() => { - //現在の駅に停車する列車から時刻を切り出してLEDベースにフォーマット - if (objectIsEmpty(stationDiagram)) return () => {}; - const getTimeData = getTime(stationDiagram, station); - setTrainTimeAndNumber(getTimeData); - }, [stationDiagram]); - const timeFiltering = (d) => { const date = new Date(); const newDate = new Date(); @@ -146,16 +157,6 @@ export default function LED_vision(props) { return false; }; - const [selectedTrain, setSelectedTrain] = useState([]); - useEffect(() => { - if (!trainTimeAndNumber) return () => {}; - if (!currentTrain) return () => {}; - const data = trainTimeAndNumber - .filter((d) => currentTrain.map((m) => m.num).includes(d.train)) - .filter(timeFiltering) - .filter((d) => !!finalSwitch || d.lastStation != "当駅止"); - setSelectedTrain(data); - }, [trainTimeAndNumber, currentTrain, finalSwitch]); return ( @@ -279,17 +279,13 @@ const EachData = ({ d, trainIDSwitch, trainDescriptionSwitch, - props, + station, currentTrain, customTrainDataDetector, - navigate, setTrainInfo, EachTrainInfoAsSR, }) => { const openTrainInfo = (d) => { - console.log(train); - console.log(d); - console.log(currentTrain); let TrainNumber = ""; if (train.trainNumDistance != undefined) { const timeInfo = @@ -329,7 +325,7 @@ const EachData = ({ } }; const trainDelayStatus = getTrainDelayStatus( - checkDuplicateTrainData(currentTrain.filter((a) => a.num == train)) + checkDuplicateTrainData(currentTrain.filter((a) => a.num == d.train)) ); return ( <>