Reactjs 如何控制useState的返回类型
我只想把状态改为工作或离开。 我尝试使用useState,但它返回void类型。如何返回布尔类型? 我是打字机初学者,请帮帮我Reactjs 如何控制useState的返回类型,reactjs,typescript,react-hooks,Reactjs,Typescript,React Hooks,我只想把状态改为工作或离开。 我尝试使用useState,但它返回void类型。如何返回布尔类型? 我是打字机初学者,请帮帮我 import React, {useState, useCallback} from 'react'; import MainHeader from 'components/UI/Main/MainHeader'; interface MainHeaderState { working: boolean, } const MainHeaderContainer
import React, {useState, useCallback} from 'react';
import MainHeader from 'components/UI/Main/MainHeader';
interface MainHeaderState {
working: boolean,
}
const MainHeaderContainer:React.FC<MainHeaderState> = () =>{
const [working, setWorking] = useState(false);
const onWorking = useCallback(() => {
return setWorking(true);
}, [])
const onLeaving = useCallback(() => {
return setWorking(false)
} ,[])
return (
<MainHeader
working = {onWorking}
leaving = {onLeaving}
/>
);
}
export default MainHeaderContainer
import React,{useState,useCallback}来自“React”;
从“组件/UI/Main/MainHeader”导入MainHeader;
接口MainHeaderState{
工作:布尔,
}
const MainHeaderContainer:React.FC=()=>{
const[working,setWorking]=useState(false);
const onWorking=useCallback(()=>{
返回setWorking(真);
}, [])
const onLeaving=useCallback(()=>{
返回设置工作(假)
} ,[])
返回(
);
}
导出默认MainHeaderContainer
不要使用return
关键字
试试这个:-
import React, {useState, useCallback} from 'react';
import MainHeader from 'components/UI/Main/MainHeader';
const MainHeaderContainer:React.FC = props =>{
const [working, setWorking] = useState(false);
const onWorking = useCallback(() => {
setWorking(true);
}, [])
const onLeaving = useCallback(() => {
setWorking(false)
} ,[])
return (
<MainHeader
working = {onWorking}
leaving = {onLeaving}
/>
);
}
export default MainHeaderContainer
import React,{useState,useCallback}来自“React”;
从“组件/UI/Main/MainHeader”导入MainHeader;
const MainHeaderContainer:React.FC=props=>{
const[working,setWorking]=useState(false);
const onWorking=useCallback(()=>{
设置工作(真);
}, [])
const onLeaving=useCallback(()=>{
设置工作(假)
} ,[])
返回(
);
}
导出默认MainHeaderContainer
MainHeader组件:-
import React from 'react';
import classes from './MainHeader.module.scss';
import { NavLink } from 'react-router-dom';
import Button from 'components/UI/Button'
interface MainHeaderProps {
working:() => void;
leaving:() => void;
}
const MainHeader: React.FC<MainHeaderProps> = props => {
return (
<div className = {classes.HeaderWrapper}>
<div className = {classes.Search}>
<input type = "text" placeholder = "Search...."/>
</div>
<div className = {classes.Navbar}>
<nav>
<span><NavLink exact to = '/notice'>notice</NavLink></span>
</nav>
<Button btnType = 'working' clicked = {props.working} btnValue = "working"/>
<Button btnType = 'leaving' clicked = {props.leaving} btnValue = "leaving"/>
</div>
</div>
)
}
export default MainHeader;
从“React”导入React;
从“/MainHeader.module.scss”导入类;
从'react router dom'导入{NavLink};
从“组件/UI/按钮”导入按钮
接口MainHeaderProps{
工作:()=>无效;
离开:()=>无效;
}
const MainHeader:React.FC=props=>{
返回(
注意
)
}
导出默认主标题;
问题在于main标题的道具类型与传递的值不匹配。您正在向它传递一个函数,它需要一个布尔值(请检查MainHeader
组件)。因此,我只是简单地将道具类型更改为功能,现在应该可以使用了。
- 这是主标题组件
从“React”导入React;
从“/MainHeader.module.scss”导入类;
从'react router dom'导入{NavLink};
从“组件/UI/按钮”导入按钮
接口MainHeaderProps{
工作:布尔,
离开:布尔值
}
const MainHeader:React.FC=(工作、离开)=>{
返回(
注意
)
}
导出默认主标题;
您能解释更多吗?我们帮不了你多少忙。请详细解释问题。const setWorking:(value:React.SetStateAction)=>void//我想在const onWorking
中保存布尔类型的true,但setWorking正在返回void类型。。。。因此绑定时发生类型错误。请共享
的代码。好的,我已经发布了代码。您可以检查更新的答案吗?让我知道它是否更清晰。此外,下次如果你想提供更多细节,只需编辑你的问题,而不是将其添加为答案。因为这对一些观众来说是一种误导。。。。。哇,非常感谢:)因为你,我可以睡得很好。我建议删除这个答案,并将其添加到问题本身中。
import React from 'react';
import classes from './MainHeader.module.scss';
import { NavLink } from 'react-router-dom';
import Button from 'components/UI/Button'
interface MainHeaderProps {
working: boolean,
leaving: boolean
}
const MainHeader: React.FC<MainHeaderProps> = (working,leaving) => {
return (
<div className = {classes.HeaderWrapper}>
<div className = {classes.Search}>
<input type = "text" placeholder = "Search...."/>
</div>
<div className = {classes.Navbar}>
<nav>
<span><NavLink exact to = '/notice'>notice</NavLink></span>
</nav>
<Button btnType = 'working' clicked = {working} btnValue = "working"/>
<Button btnType = 'leaving' clicked = {leaving} btnValue = "leaving"/>
</div>
</div>
)
}
export default MainHeader;