首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能在给变量赋值之后使用<Show>条件方法显示solid-js按钮呢?

为什么我不能在给变量赋值之后使用<Show>条件方法显示solid-js按钮呢?
EN

Stack Overflow用户
提问于 2022-08-28 22:50:07
回答 2查看 122关注 0票数 2

我在实体店工作。我在我的项目中创建了一个url变量。如果该值不存在url变量,则我的应用程序必须向用户显示一个聊天创建按钮,如果变量有空值,则不能创建消息。为此,我在实体-js中创建了一个条件结构:

代码语言:javascript
复制
<Show when={open()}>

         <Show when={url()?.trim().length}>
              ...
           <CreateChat/>
             ...
         </Show>
         <Show when={!url()?.trim().length}>
                ...
         You cannot create a whelpschat 
             ...
         </Show>
</Show>

当我测试时,当url变量有一个空值时,它会显示消息--您不能创建一个whelpschat;但是当我将一个值分配给url变量(例如香蕉)时,它总是显示消息而不是按钮。但是,考虑到变量确实有一个非零值,通常应该显示的是按钮。我不明白为什么这不管用。我希望我能得到更有经验的社会人士的帮助。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2022-09-10 02:43:58

尝试使用后备支柱

SolidJS上的回退类似于普通js上的else语句,每当条件为false时,它总是呈现回退,如果条件为真,则它将呈现statement的所有子元素

而不是这个

代码语言:javascript
复制
     <Show when={url()?.trim().length}>
          ...
       <CreateChat/>
         ...
     </Show>
     <Show when={!url()?.trim().length}>
            ...
     You cannot create a whelpschat 
         ...
     </Show>

做这个

代码语言:javascript
复制
     <Show when={url()?.trim().length}
       fallback={<p>You cannot create a whelpschat</p>}  
     >
          ...
       <CreateChat/>
         ...
     </Show>
票数 2
EN

Stack Overflow用户

发布于 2022-09-20 19:27:10

您的呈现逻辑是错误的:您同时呈现CreateChat组件和回退组件。若要修复它,请使用单个Show组件提供一个条件和一个后备条件。

代码语言:javascript
复制
<Show when={url()?.trim().length} fallback={<div>Invalid URL</div>}>
  <CreateChat/>
</Show>

或者,您可以在JSX中使用一个简单的if语句:

代码语言:javascript
复制
const CustomComponent = () => {
  if(url().trim().length) {
    return <CreateChat />
  }

  return <div>Invalid URL</div>
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73522816

复制
相关文章

相似问题

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