首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正确更改钩子后呈现组件

正确更改钩子后呈现组件
EN

Stack Overflow用户
提问于 2021-06-01 23:52:12
回答 1查看 50关注 0票数 0

我想知道如何在组件完成更改钩子后呈现它。

例如,我在下面的组件中使用useEffect.But所做的工作有一个缺点,即当我想使用该组件时,我会得到:

‘HomeClienteOProveedor’不能用作JSX组件。它的返回类型‘void’不是一个有效的JSX元素。

代码语言:javascript
运行
复制
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]);
    
  
}

为什么我可以用这样的东西:

代码语言:javascript
运行
复制
 setCliente((true) => {
    console.log("its true!"); 
    
   
  });
EN

回答 1

Stack Overflow用户

发布于 2021-06-02 00:02:18

更惯用的方法是在效果中运行异步代码,然后在有状态值的基础上设置呈现条件:

代码语言:javascript
运行
复制
const HomeClienteOProveedor = () => {
  const [cliente, setCliente] = useState(true)

  useEffect(() => {
    getItem("clientType").then(res => {
      if (res == "1") {
        setCliente(true);
      } else {
        setCliente(false);
      } 
    })
  }, []);
     
  return cliente ? <HomeCliente /> : <HomeProveedor />
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67797304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档