我想知道如何在组件完成更改钩子后呈现它。
例如,我在下面的组件中使用useEffect.But所做的工作有一个缺点,即当我想使用该组件时,我会得到:
‘HomeClienteOProveedor’不能用作JSX组件。它的返回类型‘void’不是一个有效的JSX元素。
const HomeClienteOProveedor = () => {
const [cliente, setCliente] = useState(true)
getItem("clientType").then(res => {
if (res=="1"){
setCliente(true)
}else{
setCliente(false)
}
})
useEffect(() => {
if (cliente){
return ( ()=>{
<HomeCliente />
});
}else{
return ( ()=>{
<HomeProveedor />
});
}
}, [ cliente]);
}为什么我可以用这样的东西:
setCliente((true) => {
console.log("its true!");
});发布于 2021-06-02 00:02:18
更惯用的方法是在效果中运行异步代码,然后在有状态值的基础上设置呈现条件:
const HomeClienteOProveedor = () => {
const [cliente, setCliente] = useState(true)
useEffect(() => {
getItem("clientType").then(res => {
if (res == "1") {
setCliente(true);
} else {
setCliente(false);
}
})
}, []);
return cliente ? <HomeCliente /> : <HomeProveedor />
}https://stackoverflow.com/questions/67797304
复制相似问题