Reactjs Typescript中的自定义react钩子UseTokle
我编写了用于切换布尔值和值的自定义钩子:Reactjs Typescript中的自定义react钩子UseTokle,reactjs,typescript,react-hooks,Reactjs,Typescript,React Hooks,我编写了用于切换布尔值和值的自定义钩子: import { useState } from 'react'; export function useToggle(initialValue: boolean) { const [value, setValue] = useState<boolean>(initialValue); const toggleValue = () => setValue(!value); return [value, toggleVa
import { useState } from 'react';
export function useToggle(initialValue: boolean) {
const [value, setValue] = useState<boolean>(initialValue);
const toggleValue = () => setValue(!value);
return [value, toggleValue];
}
但会出现错误:
类型“boolean |(()=>void)”不可分配给类型“boolean”|
((()=>void)和false)|((()=>void)和true)“”。键入“()=>void”
不可分配给类型“boolean |((()=>void)和false)(()=>
void)&true。
类型“()=>void”不可分配给类型“(()=>void)&false”。
类型“()=>void”不可分配给类型“false”
const{useRef,useState}=React;
函数UseTokle(初始状态){
const[value,setValue]=使用状态(initialState);
const toggle=()=>{setValue(!value)};
返回[值,切换];
};
函数App(){
const[modal,setModal]=使用切换(false);
返回(
切换!
{模式和切换!!!!}
)
}
ReactDOM.render(
,document.getElementById('root'))
)
您可能需要定义钩子的返回类型。应该是这样的
从'react'导入{useState};
导出函数UseTokle(初始值:布尔):[boolean,()=>void]{
const[value,setValue]=使用状态(initialValue);
const-toggleValue=()=>setValue(!value);
返回[value,toggleValue];
}
这些脚本的作用是什么?我们为什么需要它们?那就是作为CDN反应!你不需要关心这些,你只需要看到关于你的代码,但是你没有改变任何东西,错误仍然存在there@heisenberg7584我刚刚用{}
包装了toggle()
。你喜欢它吗?
const [modalOpen, setModal] = useToggle(false);