useEffectの並び替えとコードのバグを修正
This commit is contained in:
parent
7e092671a2
commit
420a805f3c
@ -45,8 +45,8 @@ export default function LED_vision(props) {
|
|||||||
const { station, navigate, setTrainInfo, EachTrainInfoAsSR, trainDiagram } =
|
const { station, navigate, setTrainInfo, EachTrainInfoAsSR, trainDiagram } =
|
||||||
props;
|
props;
|
||||||
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
|
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
|
||||||
const [currentTrain, setCurrentTrain] = useState(null); //現在在線中の全列車
|
const [currentTrain, setCurrentTrain] = useState([]); //現在在線中の全列車 { num: 列車番号, delay: 遅延時分(状態), Pos: 位置情報 }
|
||||||
const [currentTrainLoading, setCurrentTrainLoading] = useState("loading");
|
const [currentTrainLoading, setCurrentTrainLoading] = useState("loading"); // success, error, loading
|
||||||
const [finalSwitch, setFinalSwitch] = useState(false);
|
const [finalSwitch, setFinalSwitch] = useState(false);
|
||||||
const [trainIDSwitch, setTrainIDSwitch] = useState(false);
|
const [trainIDSwitch, setTrainIDSwitch] = useState(false);
|
||||||
const [trainDescriptionSwitch, setTrainDescriptionSwitch] = useState(false);
|
const [trainDescriptionSwitch, setTrainDescriptionSwitch] = useState(false);
|
||||||
@ -66,6 +66,26 @@ export default function LED_vision(props) {
|
|||||||
setStationDiagram(returnData);
|
setStationDiagram(returnData);
|
||||||
}, [trainDiagram, station]);
|
}, [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 = () =>
|
const getCurrentTrain = () =>
|
||||||
fetch(
|
fetch(
|
||||||
"https://train.jr-shikoku.co.jp/g?arg1=train&arg2=train",
|
"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 timeFiltering = (d) => {
|
||||||
const date = new Date();
|
const date = new Date();
|
||||||
const newDate = new Date();
|
const newDate = new Date();
|
||||||
@ -146,16 +157,6 @@ export default function LED_vision(props) {
|
|||||||
return false;
|
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 (
|
return (
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
@ -176,10 +177,9 @@ export default function LED_vision(props) {
|
|||||||
d={d}
|
d={d}
|
||||||
trainIDSwitch={trainIDSwitch}
|
trainIDSwitch={trainIDSwitch}
|
||||||
trainDescriptionSwitch={trainDescriptionSwitch}
|
trainDescriptionSwitch={trainDescriptionSwitch}
|
||||||
props={props}
|
station={station}
|
||||||
currentTrain={currentTrain}
|
currentTrain={currentTrain}
|
||||||
customTrainDataDetector={customTrainDataDetector}
|
customTrainDataDetector={customTrainDataDetector}
|
||||||
navigate={navigate}
|
|
||||||
setTrainInfo={setTrainInfo}
|
setTrainInfo={setTrainInfo}
|
||||||
EachTrainInfoAsSR={EachTrainInfoAsSR}
|
EachTrainInfoAsSR={EachTrainInfoAsSR}
|
||||||
/>
|
/>
|
||||||
@ -279,17 +279,13 @@ const EachData = ({
|
|||||||
d,
|
d,
|
||||||
trainIDSwitch,
|
trainIDSwitch,
|
||||||
trainDescriptionSwitch,
|
trainDescriptionSwitch,
|
||||||
props,
|
station,
|
||||||
currentTrain,
|
currentTrain,
|
||||||
customTrainDataDetector,
|
customTrainDataDetector,
|
||||||
navigate,
|
|
||||||
setTrainInfo,
|
setTrainInfo,
|
||||||
EachTrainInfoAsSR,
|
EachTrainInfoAsSR,
|
||||||
}) => {
|
}) => {
|
||||||
const openTrainInfo = (d) => {
|
const openTrainInfo = (d) => {
|
||||||
console.log(train);
|
|
||||||
console.log(d);
|
|
||||||
console.log(currentTrain);
|
|
||||||
let TrainNumber = "";
|
let TrainNumber = "";
|
||||||
if (train.trainNumDistance != undefined) {
|
if (train.trainNumDistance != undefined) {
|
||||||
const timeInfo =
|
const timeInfo =
|
||||||
@ -329,7 +325,7 @@ const EachData = ({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
const trainDelayStatus = getTrainDelayStatus(
|
const trainDelayStatus = getTrainDelayStatus(
|
||||||
checkDuplicateTrainData(currentTrain.filter((a) => a.num == train))
|
checkDuplicateTrainData(currentTrain.filter((a) => a.num == d.train))
|
||||||
);
|
);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
Loading…
Reference in New Issue
Block a user