【发布时间】:2020-04-15 16:21:51
【问题描述】:
import React from 'react';
import {Plugins} from '@capacitor/core';
import {useState, useEffect} from 'react';
import {db} from './Firebase';
const Maps = () => {
const [lat, setLat] = useState(0);
const [long, setLong] = useState(0);
const [count, setCount] = useState (0);
const Counter = () => {
setCount(count + 1)
console.log(count)
}
const Location = () => {
Plugins.Geolocation.getCurrentPosition().then(
result => setLat ( result.coords.latitude)
)
Plugins.Geolocation.getCurrentPosition().then(
result => setLong (result.coords.longitude)
)
}
const interval = () => {
setInterval (() =>
{
Location();
Counter();
}, 5000 );
}
return (
<div>
<div>
<button onClick = {interval}>
Get Location
</button>
</div>
<div>
{long}
</div>
<div>
{lat}
</div>
</div>
)
}
export default Maps;
我试图通过 counter 函数让计数器在 setInterval 的每次迭代中递增,但是当我记录计数时,它不会递增并且始终保持为 0。
我尝试在 setInterval 中运行 setCount 本身但没有任何成功,它仍然不会增加计数。
【问题讨论】:
-
你为什么使用两种不同的状态来表示位置坐标?
-
我不知道,我试着在同样的状态下做,但我一直绊倒它,所以我选择了更简单的方法,我很确定有更好的方法来做.
标签: reactjs setinterval