【发布时间】:2021-01-03 23:59:48
【问题描述】:
我开始使用 Ionic-react 打字,所以我在设置我的状态时遇到打字问题
这是我的代码
import { RouteComponentProps } from "react-router-dom";
type ICoord = {
data: number[];
};
type Props = RouteComponentProps & ICoord;
const Verify: React.FC<Props> = ({ history }) => {
const coordinates: number[] = [];
const [data, setdata] = useState<ICoord>();
useEffect(() => {}, [data]);
const start = () => {
navigator.geolocation.watchPosition(
(data) => {
console.log(data);
coordinates[0] = data.coords.latitude;
coordinates[1] = data.coords.longitude;
setdata(coordinates);
},
(err) => {
console.log(err);
},
{ enableHighAccuracy: true }
);
};
const stop = () => {};
return (
<div>
<button onClick={start}>start</button>
<button onClick={stop}>stop</button>
</div>
);
};
export default Verify;
所以当我尝试在行中设置状态时
setdata(coordinates);
它给了我错误
'number[]' 类型的参数不能分配给类型参数 'SetStateAction
'。类型 'number[]' 不是 可分配给类型 '(prevState: ICoord | undefined) => ICoord | 未定义'。
【问题讨论】:
-
你需要
setdata({ data: coordinates })
标签: reactjs typescript ionic-framework ionic4 ionic-react