TS文件里hook的useState怎么設置格式
const [name, setName] = useState<String>("tom"); // 字符串 const [age, setAge] = useState<Number>(18); // 數字 const [sex, setSex] = useState<Boolean>(true); // 布爾值
對象
const [student, setStudent] = useState<{name: string; age: number; sex: boolean}>({ // 默認值 name: "tom", age: 18, sex: true }); setStudent({ // 賦值 name: "anne", age: 16, sex: false });
數組:
const [students, setStudents] = useState<Array<{name: string; age: number; sex: boolean}>>([ // 默認值 { name: "tom", age: 18, sex: true } ]) setStudents([ // 賦值 { name: "anne", age: 16, sex: false } ])
組件(元素):組件本質上拋出的就是個jsx的元素
const [clockDom, setClockDom] = React.useState<JSX.Element>(<div/>); if (clockShow) { setClockDom(<Clock/>); } else { setClockDom(<div/>); }
貼個完整代碼例子:
還有其他解決辦法(但不建議使用因為濫用any,僅供參考):
解決方法2:const [students, setStudents] = useState<any>()
解決方法3:const [students, setStudents] = useState([] as any[])
隨便提一下所有初始化數據都要在useEffect里進行,useEffect干嘛用的這里就不展開了百度很多文章,以后有空我也來說說useEffect