当前位置: 首页 > 知识库问答 >
问题:

父组件中的类在子组件中不起作用

南宫建白
2023-03-14

我有一个包含HTML组件,如下所示:

<div class="wrapper">
  <lqs-myComponent class="my-component" [ngClass]="myComponentStatus ? 'is-active' : ''"></lqs-myComponent>
</div>

此组件的CSS(或部分CSS)为:

.wrapper {

  .my-component {
    display: grid;
    width: 100%;
    justify-self: center;
    box-sizing: border-box;
    border-radius: 5px;
    row-gap: 5px;
    align-self: start;

    &.is-active {

      > div {
        transition: all 0.1s ease-in-out;
        transform: translateY(0px);

        @for $i from 0 through 50 {
          &:nth-child(#{$i + 1}) {
            transition-delay: (0.05s * $i) + 0.50s;
            opacity: 1;
          }
        }
      }
    }
  }
}

其基本思想是,当is-active通过页面上的某个click事件应用时,LQS-MyComponent中的div会发生一些动画。因此该组件中的divs类似于:

<div>Hello</div>
<div>Hello hello</div>
<div>Hello hello hello</div>

使用CSS:

div {
  transition: all 0.05s ease-in-out;
  transform: translateY(20px);
  opacity: 0;
}

我的问题是,上面的页面(带有包装器)是发生(click)事件的地方,因此它也是应用is-active类的地方。但是,实际的lqs-mycomponent组件,它只是包含一堆div(应该是动画的),嗯,它们根本没有动画。

我可以看到is-active类是在单击按钮时应用的,但我猜当类应用在另一个组件中时有些东西不正常工作,而应该在另一个组件中工作。

我对Angular还是个新手,所以我不知道现在该如何解决这个问题?

共有1个答案

宋华灿
2023-03-14

在Angular中,组件CSS样式被封装到组件的视图中,并且不影响应用程序的其余部分,为了控制这种封装在每个组件的基础上发生的方式,您可以在组件元数据中设置视图封装模式

encapsulation: ViewEncapsulation.None

或者在您的类上使用不推荐使用的::ng-deep

 类似资料:
  • 我需要使用父组件中子组件内部的状态值。 组成部分: 这是父组件:

  • 我在react native中有一个搜索栏组件,它在父组件中导入, SearchBar子组件具有以下元素: 是否可以访问此子组件在其中导入的父组件中的状态?提前感谢你的帮助

  • 问题内容: 如果我有类似的东西 我想从我拥有的地方访问,该怎么办? 问题答案: 推荐用于16.3之前的React版本 如果无法避免,那么从React文档中提取的建议模式将是: 该 家长 转发绑定到一个功能道具 家长 。当呼叫作出反应的 儿童的 道具也将分配 孩子的 给 父母的 财产。 建议用于React> = 16.3 引用转发是一种选择加入功能,它使某些组件可以接收它们收到的引用,并将其进一步向

  • 我需要在ReactJS中从父组件调用子组件方法。我试过使用裁判,但不能做到这一点。有没有人能提出任何解决方案。多谢了。

  • 我创建了一个反应父组件,它将一些道具传递给它的子组件,并持有一个onclick函数。当单击产品组件时,onclick函数应该console.log'WORKED',这不起作用,控制台上没有显示任何内容。我不明白我错在哪里,这应该是如此简单。我是不是犯了一个我一直忽略的愚蠢错误? 这是我的父组件代码: 以下是产品(子)组件的代码:

  • 本文向大家介绍如何在子组件中访问父组件的实例?相关面试题,主要包含被问及如何在子组件中访问父组件的实例?时的应答技巧和注意事项,需要的朋友参考一下 vue中如果父组件想调用子组件的方法,可以在子组件中加上ref,然后通过this.$refs.ref.method调用(https://www.cnblogs.com/jin-zhe/p/9523029.html) Vue中子组件调用父组件的方法,这里