如何解决类型'number []'的参数不能分配给类型'SetStateAction <ICoord |未定义>
我从离子反应开始打字稿,所以我在设置状态时面临打字稿问题
这是我的代码
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 | 未定义”。
解决方法
const [data,setdata] = useState<ICoord | undefined>();
,
只是失去了“ ICoord”,因为您只有一个值,不需要编写更多代码。另外,在useState中,您可以定义数据类型
const [data,setData] = useState([])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。